如何在 Team Build 建置完成後,再將建置完成的檔案部署到別的伺服器
使用情境如下:
例如 Team Build 從 TFS 取得一個 Web Application 原始程式碼並做建置,在建置完成後,要再部置到一台測試的 Web Server,或是直接部置到正式的 Web Server。以達到自動建置及自動部置的功能。
在 Team Build 的設定精靈畫面中並沒有地方可以直接做指定,但只要做一些小手腳,即可有自動部置的功能,步驟如下:
1. 由 CodePlex 下載 SDC Tasks Library:https://www.codeplex.com/sdctasks
SDC Tasks Library 中有許多功能,有興趣的朋友可以自行下載它的說明文件參考。
2. 解壓縮 ZIP 檔到一個資料夾,如 C:\BuildTools
3. 簽出欲建置的 Web Application 的 Team Build Type
4. 開啟 TFSBuild.proj 的檔案,並進行下列修改
<PropertyGroup>
<TasksPath>C:\BuildTools\</TasksPath>
</PropertyGroup>
<Import Project="$(TasksPath)\Microsoft.Sdc.Common.tasks"/>
<Target Name="DesktopBuild">
<CleanFolder Path="c:\MyCleanFolder" Force="True"/>
</Target>
<PropertyGroup>
<WebBinariesLocation>$(SolutionRoot)\..\Binaries\Release\_PublishedWebSites\WebApplication2</WebBinariesLocation>
</PropertyGroup>
<!-- Using tag to import the task in dll -->
<UsingTask TaskName="Microsoft.Sdc.Tasks.Web.WebSite.CreateVirtualDirectory" AssemblyFile="Microsoft.Sdc.Tasks.dll" />
<UsingTask TaskName="Microsoft.Sdc.Tasks.Web.WebSite.DeleteVirtualDirectory" AssemblyFile="Microsoft.Sdc.Tasks.dll" />
<Target Name="AfterCompile">
<!-- 建立欲部置的資料來位置,若不需建立資料來,則不需執行此指令 -->
<MakeDir Directories="C:\Deploy\MyWebsite" />
<!-- SDC Task Library 中有許多功能,如:執行建立 Viruta Directory 或 刪除 Virtual Directory -->
<!-- 可自行參考 SDC Task Library 的說明文件 -->
<!-- 將建置完成的檔案複製到 C:\Deploy\MyWebsite 的資料夾,路徑可自行指定,請注意權限 -->
<Exec Command="xcopy /y /e $(WebBinariesLocation) C:\Deploy\MyWebsite"/>
</Target>
完成畫面如下:
5. 將修改完成的 TFSBuild.proj 檔案簽入
6. 執行 Team Build,即可看到已將建置完的檔案複製到 C:\Deploy\MyWebsite
筆者使用環境:VSTS 2005 w/ SP1 + TFS 2005 w/SP1 + Team Build
最近好不容易才比較熟悉使用錄製畫面的工具,花了一些時間才錄了 TFS 2008 的單一伺服務器安裝方式。接下來打算來談談原始程式碼控制(Source Control)管理,如專案的資料夾要如何管理及建立,因在實際應用上會有專案交互引用的問題等 。
不過,有朋友問了 Team Build 的問題,就順便整理一下。
Comments
- Anonymous
May 19, 2008
PingBack from http://www.travel-hilarity.com/airline_travel/?p=4628