2009-05-31 73 views
5

我們維護一個在vb/c#.net中開發的中等大小的windows應用程序。現在,這個應用程序的構建和部署過程是手動的。我決定讓這個過程自動化使用MSBuild,我現在還沒有任何知識。需要Msbuild新手底漆

我們的應用程序有一個簡單的構建結構,一組項目已經分爲四個解決方案(.sln),只需要按順序構建四個slns。然後發佈一個項目(這是最後一個sln的一部分)到一個目錄。這就對了。一個簡單的過程已經耗費了30分鐘的手動編譯時間,我敢肯定,這可以在至少1/4的時間內使用msbuild進行手動干預來完成。

我所有的目標設定都很好,我開始在網絡上尋找MSBuild資源來完成我的過程,但可能會看到許多讓我困惑的事情。需要一個關於如何開始以及從哪裏開始簡單場景的指針或者一個很好的解釋。非常感謝幫助。

回答

5

這聽起來像是一個非常簡單的腳本來編寫。即使是一個批處理文件會做:

msbuild \path\to\first.sln /p:Configuration=Release 
msbuild \path\to\second.sln /p:Configuration=Release 
msbuild \path\to\third.sln /p:Configuration=Release 
msbuild \path\to\fourth.sln /p:Configuration=Release 
call deploy

當然,更好的辦法是有一個服務器上運行,說CruiseControl.NET,給人的Web界面轉化生成的狀態和歷史。

在MS Build中,調用者有兩個主要控制點:目標及其屬性。目標是編譯,資源,編譯,部署等內容。屬性控制目標的構建方式。

您可以使用配置屬性(請參閱上文)來控制配置。如果你打開你的*。* proj文件,你會注意到PropertyGroup元素。這些可通過命令行使用/p arg進行設置。

這裏是爲有兩個參數規格:

/target:<targets> Build these targets in this project. Use a semicolon or a 
       comma to separate multiple targets, or specify each 
       target separately. (Short form: /t) 
       Example: 
        /target:Resources;Compile 

/property:<n>=<v> Set or override these project-level properties. <n> is 
       the property name, and <v> is the property value. Use a 
       semicolon or a comma to separate multiple properties, or 
       specify each property separately. (Short form: /p) 
       Example: 
        /property:WarningLevel=2;OutDir=bin\Debug\ 
+0

感謝您的回覆。但我如何設置配置選項和所有?例如,我調試我的應用程序設置項目在DEBUG模式,但腳本應始終建立在釋放模式。再次感謝您的快速回復。 – blntechie 2009-05-31 07:06:41

1

Here's a good guide,有很多對MSBuild的,持續集成和CuriseControl.NET大量信息。絕對是一個開始的好地方。