2010-02-11 43 views
2

我的buildbot已經運行3年,使用devenv.com在Windows上編譯項目。在Windows上buildbot C++構建:使用devenv.com,vcbuild.exe或MSBuild.exe?

現在devenv.com在構建64位版本時遇到了麻煩:將配置作爲「Debug | x64」傳遞,由於管道字符而生成命令行錯誤。在引號之間進行轉義會導致其他錯誤,其中一些是因爲目錄名稱中的空格,一些是因爲奇怪的命令行。

我試過了vcbuild.exe和MSBuild.exe。 vcbuild.exe完美工作:我想堅持下去。另一方面,MSBuild.exe有一個完全奇怪和複雜的輸出,我的同事感覺很糟糕。但它被吹捧爲THE的方式來建立。

問題是:哪個devenv.com,vcbuild.exe和MSBuild.exe是最有可能持續最久的方法?

+0

您是否嘗試用插入符號(^)轉義管道字符,因爲這是命令提示符的轉義字符。 – Daemin 2010-02-11 14:57:23

回答

4

MSBuild(在Visual Studio 2010/.NET 4之前)本身並不構建C++項目。它調用vcbuild.exe。所以如果你很高興不使用MSBuild,那麼我會堅持爲C++項目。對於託管項目(以及使用VS 2010的C++),請使用MSBuild。

3

我遇到了同樣的問題,並通過Windows的外殼轉義管道字符解決它:

"Debug^|Win32" 
0

msbuild.exe不(沒?)知道如何建立安裝項目。 devenv.exe的確如此。

3

MSBuild是「最有可能持續」的方法。 VCBuild.exe死了;它的最後版本是2008年。如果需要從VS2008或更早的版本構建VC項目,MSBuild 4.0仍將使用它。至於devenv.exe - 當然,它只是無頭的Visual Studio。在功能上它與VS中的構建相同。這意味着現在,它基本上只是交給MSBuild,但有時並不會比msbuild.exe得到更多的並行性。您可能仍需要使用devenv.exe的主要原因是.vdproj(部署)項目。這些遺留的東西有一個編譯進VS的編譯過程。我推薦一種類似於基於MSBuild的WiX或Installshield。現在不久,直到VS中的所有東西都是MSBuild。

總之 - MSBuild是未來,使用它,除非你有部署項目或其他特殊情況。

Dan

相關問題