創建用於自定義SharePiont解決方案的Visual Studio項目

在基於SharePoint的開發中,我們通常會在WSS的/TEMPLATE目錄中部署一些自定義代碼文件。對於這種需求,我們可以通過創建一個Microsoft Visual Studio項目,模仿/TEMPLATE目錄的結構。這樣,就可以想辦法自動化我們的部署過程。這無疑會對我們的部署和測試有很大幫助。
我們需要創建一個類庫(Class Library DLL)類型的項目。然後,在項目中創建一個/TEMPLATE目錄。如果我們創建了一個或多個功能(Feature),那麼就在TEMPLATE目錄下創建一個FEATURES目錄,將Feature文件都放在此目錄下。如果我們創建了自定義後臺應用程序頁面,那麼就在TEMPLATE目錄下創建一個LAYOUTS目錄。在LAYOUTS目錄下,創建一個公司特定或項目特定的目錄,然後將我們的自定義應用程序頁面創建在該目錄下面。

圖1、我們創建的Visual Studio項目,目錄結構模仿WSS/TEMPLATE目錄

部署

在創建完我們的組件如Feature或應用程序頁面後,我們可以創建一個批處理文件來自動將這些文件拷貝到/TEMPLATE目錄。如果我們好測試一個Feature,還可以在批處理文件中增加一個到STSADM.EXE命令行工具的調用,來安裝(或激活)該Feature。如果我們的自定義解決方案中包括一個DLL組件需要部署到GAC(global assembly cache)中,還可以在批處理文件中運行GACUTIL.EXE命令行工具。下面是一個批處理文件的例子。其中包括了上面所說的幾個內容,基本包括了我們在做部署和測試時會遇到的種種情況。

@SET TEMPLATEDIR="c:/program files/common files/microsoft shared/
                  web server extensions/12/Template"
@SET STSADM="c:/program files/common files/microsoft shared/
             web server extensions/12/bin/stsadm"
@SET GACUTIL="c:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/
              Bin/gacutil.exe"

Echo Installing HelloWssDev.dll in GAC
%GACUTIL% 
-if bin/debug/HelloWssDev.dll

Echo Copying files 
to TEMPLATE directory
xcopy 
//y TEMPLATE/* %TEMPLATEDIR%

Echo Installing feature
%STSADM% 
-o installfeature -filename  HelloWssDev/feature.xml -force

REM - Uncomment next line when you need to restart IIS worker process
REM
 IISRESET


請注意,在上面的批處理文件頂部的三個文件路徑,包括了換行。這是爲了在這裏更加易於閱讀。可是在正式的實際使用的install.bat文件中,必須將其中的換行除去,以保證批處理能夠工作。

編譯後自動部署

接下來我們可以給Visual Studio項目添加一個post-build事件,實現在編譯(build)後自動執行install.bat。這裏要注意必須將當前路徑變爲當前項目所在目錄,以保證可以訪問install.bat文件。我們可以像如下這樣來寫這個post-build。

cd $(ProjectDir)
install.bat

開發基於SharePoint產品和技術的自定義解決方案爲我們提供了一種可以擴展WSS或MOSS的強大方式。當我們通過Visual Studio項目來創建這些組件時,我們需要具有一個結構清晰的步驟來進行測試和跟蹤調試。通常我們的項目會包括一個或多個下面類型的組件

  • 功能(Feature)文件
  • 站點定義(Site definition)文件
  • 後臺應用程序頁面
  • 頁面模板
  • WebPart描述文件
  • 需要部署到GAC或bin目錄的DLL組件

當我們創建一個Visual Studio項目來自動copy這些文件到合適的地方並安裝好Feature和DLL,我們就可以更快的開展測試並調試程序了。

查看視頻

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章