2011年10月4日 星期二

Visual Studio 2010 自訂建置工作項目 - Custom MSBuild Task

在Visual Studio中方案或是專案的編譯,其實是透過一個叫做MSBuild(Microsoft Build Engine)的平台來執行,它會根據在專案(.csproj)的XML描述來進行編譯的判斷與順序.

在MSBuild定義中是依靠許多已經內建的工作項目(Task)來進行處理,因此我們也可以透過撰寫Task的方式來達到我們想要的建置動作.

參考資料:
A. How to: Extend the Visual Studio Build Process
B. Task Writing

在這裡我想要達到的功能是:在專案建置完成後,會根據一個XML檔案內容,將指定的檔案壓縮到一個Zip中.

1. 建立BuildWebFeature的Task,它會讀取source.webfeature這個檔案,然後根據內容把相關的檔案加入一個用Guid為檔案名稱的Zip中.

2. 在C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Likol\中,加入一個Likol.target,並加入要執行的MSBuild定義(部份如下),並將建置的Task Assembly檔案一併複製過來


3. 使用一般的文字編輯器開啟我們要加入建置動作的專案檔,並加入以下的內容


4. 完成後使用Visual Studio建置該專案,完成後就會產生一個Zip的壓縮檔.

沒有留言:

張貼留言