我們需要創建一個類庫(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命令行工具。下面是一個批處理文件的例子。其中包括了上面所說的幾個內容,基本包括了我們在做部署和測試時會遇到的種種情況。
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 /e /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。
install.bat
開發基於SharePoint產品和技術的自定義解決方案爲我們提供了一種可以擴展WSS或MOSS的強大方式。當我們通過Visual Studio項目來創建這些組件時,我們需要具有一個結構清晰的步驟來進行測試和跟蹤調試。通常我們的項目會包括一個或多個下面類型的組件
- 功能(Feature)文件
- 站點定義(Site definition)文件
- 後臺應用程序頁面
- 頁面模板
- WebPart描述文件
- 需要部署到GAC或bin目錄的DLL組件
當我們創建一個Visual Studio項目來自動copy這些文件到合適的地方並安裝好Feature和DLL,我們就可以更快的開展測試並調試程序了。