2010-01-29 116 views
3

我剛開始看MSBuild並讓我的腦袋圍繞整個想法。我已經用Hudson設置了CI服務器,並想知道我應該如何處理構建腳本和sln/proj文件。MSBuild文件VS SLN和項目文件

比如我有一個現有的解決方案有10個項目在裏面,(一個是網站,另一個是網絡部署項目,並安裝MSI項目)。處理這個問題的一個好方法是什麼?

  1. 我應該在sln文件中指向msbuild嗎?
  2. 我應該拿什麼在SLN文件中並創建另一個,所以它指向不同的proj文件?
  3. 我應該從所有sln和proj文件中獲取代碼並創建一個自定義構建腳本嗎?

如果我做了最後兩個,我是否必須擔心維護兩套腳本,即確保我的腳本和sln/proj文件一樣最新?

在我的本地盒子上開發時,我該如何處理它的構建問題?我只是按CTRL SHIFT B來構建它,然後只使用CI服務器/部署構建的構建腳本?

回答

1

我傾向於喜歡的方式,每個項目都有它自己的編譯文件(無論是的MSBuild或楠等),然後有一個主構建它建立的所有項目。這樣你就可以專注於項目(例如修復一個bug),並且在簽入之前運行主版本,再加上master.build是在生成機器上運行的版本。

您仍然可以在VS中構建和調試,構建腳本是分開的。構建腳本將僅適用於構建箱並在簽入之前運行。

這只是我對事物的看法。您可能會發現我的getting started with CI有用的帖子...

祝你好運!

1

我一直在谷歌上搜索,發現傑夫的關於「F5」後:

http://blog.codinghorror.com/the-f5-key-is-not-a-build-process/

從這個和其他幾個職位我已決定,這將是最好創建自己的MSBuild腳本,該腳本與SLN和項目文件分開。

斯科特漢塞爾爾曼(Scott's Blog)有大約在VS創建一個快捷方式運行構建腳本一個很好的鏈接。 blog entry about parallel building

我假設你仍然需要按F5進行調試,並且無法避免大部分情況,(asp.net可以附加到一個進程,所以你不必一直這樣做)。

我會通過看項目文件,並從中建立一個腳本來啓動,然後自定義之後,以適應。

希望這可能會幫助別人在未來環顧四周。

3

創建一個運行MSBuild任務的構建腳本。將MSbuild任務指向您的解決方案或項目。編譯你的源代碼然後變得簡單,只是另一個任務。你的構建腳本如果可以專注於更大更好的事物。

您的CI服務器將運行您的構建腳本。要在本地計算機上運行構建,請在項目中包含.bat文件。 .bat文件調用MSBuild來運行您的構建腳本,併爲生成日誌文件等設置命令行選項。然後,您可以雙擊bat文件並查看日誌文件以查看結果。這裏是一個例子:

%WINDIR%\Microsoft.NET\Framework\v3.5\MSBuild.exe build.xml /fileLogger /fileLoggerParameters:LogFile=MSBuildLog.txt 
相關問題