如何在 Team Build 建置完成後,再將建置完成的檔案部署到別的伺服器

使用情境如下:

例如 Team Build 從 TFS 取得一個 Web Application 原始程式碼並做建置,在建置完成後,要再部置到一台測試的 Web Server,或是直接部置到正式的 Web Server。以達到自動建置及自動部置的功能。

 

在 Team Build 的設定精靈畫面中並沒有地方可以直接做指定,但只要做一些小手腳,即可有自動部置的功能,步驟如下:

 

1. 由 CodePlex 下載 SDC Tasks Library:https://www.codeplex.com/sdctasks

clip_image002

SDC Tasks Library 中有許多功能,有興趣的朋友可以自行下載它的說明文件參考。

 

2. 解壓縮 ZIP 檔到一個資料夾,如 C:\BuildTools

clip_image004

 

3. 簽出欲建置的 Web Application 的 Team Build Type

clip_image006

clip_image008

 

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>

 

完成畫面如下:

clip_image010

 

5. 將修改完成的 TFSBuild.proj 檔案簽入

 

6. 執行 Team Build,即可看到已將建置完的檔案複製到 C:\Deploy\MyWebsite

clip_image012

 

筆者使用環境:VSTS 2005 w/ SP1 + TFS 2005 w/SP1 + Team Build

 

最近好不容易才比較熟悉使用錄製畫面的工具,花了一些時間才錄了 TFS 2008 的單一伺服務器安裝方式。接下來打算來談談原始程式碼控制(Source Control)管理,如專案的資料夾要如何管理及建立,因在實際應用上會有專案交互引用的問題等 。

不過,有朋友問了 Team Build 的問題,就順便整理一下。