【第167期 August 5, 2011】
 

研發新視界

淺談MSBuild及簡單實作

作者/林民勗

[發表日期:2011/8/1]


前言

MSBuild(Microsoft Build Engine),是一個.NET程式的建置平台,可以用來執行自動化建置流程,類似於Java的Nant工具,在Microsoft Visual Studio 2005以上版本中已包含此項工具,本文撰寫的目地是以簡單的方式介紹MSBuild,並以簡單實際操作,教導讀者如何去使用MSBuild這項工具,爾後可進階運用於快速且自動化發佈及測式程式。

MSBuild專案檔

MSBuild專案檔,採用XML為基礎的架構,使其容易擴充屬性,也較容易理解內容,其檔案命原則為*.*proj,第一個*為檔案名稱,第二個*為專案的類型,若為VB則是*.vbproj,亦可改成C#的cs;本節將簡單介紹MSBuild專案檔中基本項目。

項目Item

項目Item,是用來定義建置系統時所輸入的內容,通常用於定義要Compile的項目、專案參考的路徑、Import的元件等等,可放入多組內容;項目集合Item使用的標籤為,在整個專案檔中,可以使用@(Item名稱)來參考項目集合,EX: @(Compile),如下圖所示:


《圖一》項目Item Sample


屬性Property

屬性Property,可用來設定建置時的參數,可放入多組內容,所使用的標籤為,在整個專案檔中,可以使用$(Property名稱)來參考屬性集合的內容,Ex:$ BuildDir,如下圖所示:


《圖二》屬性Property Sample


目標Target

目標Target,是將工作Task以順序組成群組,也就是工作的集合,可以放入多組內容,所使用的標籤為,如下圖所示:


《圖三》目標Target Sample


工作Task

工作Task,用來執行Compile,可以用來做Copy、建立目錄等工作,使用於Target標籤之中,如下圖所示:


《圖四》工作Task Sample


簡單實作

本節將介紹MSBuild的實際操作,讀者可以透過下面步驟實際操作。

建立應用程式

1.建立資料夾SampleApp:於要測試的資料夾滑鼠右鍵,新增,資料夾


《圖五》建立測試資料夾1


《圖六》建立測試資料夾2


2.於SampleApp資料夾中新增文字文件,並重新命名為SampleApp.cs


《圖七》新增測試應用程式1


《圖八》新增測試應用程式2


3.以文字編輯器編輯SampleApp.cs


《圖九》編輯應用程式1


4.貼入下列文字到SampleApp.cs,並儲存


《圖十》



《圖十一》編輯應用程式2


5.建立專案檔

6.於SampleApp中新增文字文件,並重新命名為SampleApp.csproj


《圖十二》建立專案檔


7.以文字編輯器編輯SampleApp. csproj

8.貼入下列文字到SampleApp.cs,並儲存


《圖十三》



《圖十四》編輯專案檔


9.建置應用程式

10.打開命令提示字元(Commond Mode)

開始→執行,輸入cmd,按確認


《圖十五》呼叫提示命令字元模式



《圖十六》提示命令字元模式視窗


11.擴充 Path

12.以包含 MSBuild

輸入set PATH=%PATH%;%WINDIR%\Microsoft.Net\Framework\v4.0.30319


《圖十七》擴充Path


14.入測試資料夾

輸入CD 要測試的資料夾


《圖十八》進入測試資料夾


15.建置應用程式

輸入MSBuild SampleApp.csproj


《圖十九》以MSBuild建置專


16.測試建置好的程式

輸入SampleApp,得到結果”Hi, This is a sample”


《圖二十》測試建置結果


結論

MSBuild這項工具,可以用來執行自動化建置流程,透過快速且自動化發佈及測式程式,不必每次建置專案時都開啟Visual Studio,可以節省程式設計師及版本控制人員在建置專案時所花費的時間,且由於命令提示字元模式下建立程式,因此可以透過其它指令,如XCopy等方式,快速過版,真的是非常好的一項工具。

參考資料

USING MSBUILD AND TEAM FOUNDATION BUILD ; ISBN: 0735626286
HTTP://MSDN.MICROSOFT.COM/ZH-TW/LIBRARY/DD393574.ASPX
HTTP://MSDN.MICROSOFT.COM/ZH-TW/LIBRARY/DD576348.ASPX#Y6124