回答

19

基本上,devenv(Visual Studio)包裝了MSBuild並添加了大量的Visual Studio特定屬性。

要使用devenv,您需要在您的計算機上安裝Visual Studio。要使用MSBuild,你只需要有.NET框架。

7

對我們來說,主要的區別是devenv會處理安裝程序項目(* .vdproj),而msbuild不會。如果我沒有記錯,msbuild在尋找引用的程序集方面(尤其是如果路徑稍微偏離的話)要寬鬆得多。

+1

+1信令vdproj項目。至於依賴查找,我認爲VS和MsBuild是相同的,如Microsoft.Common.Targets中所定義的(請參閱:http://www.beefycode.com/post/Resolving-Binary-References-in-MSBuild .aspx) – 2011-02-15 15:43:57

5

我們從VSS/CruiseControl.NET(我猜在我們的配置中使用devenv)轉移到TFS(使用msbuild,至少在我們配置它時)發現的一件事是,有時ProjectGuids不同步。

因此,項目A引用項目B和項目A的項目或解決方案文件具有ProjectGuid和路徑B項目的項目文件。但是,無論出於何種原因,項目B的ProjectGuid已更改,項目A的項目或解決方案文件未更新以反映此情況。

Devenv很好,因爲它或者只是使用Project B的項目文件的文件路徑,或者它回落到它。然而,Msbuild在這一點上會停止冷卻,因爲如果ProjectGuids不匹配,那麼它就是不可行的。此時,您可以在Visual Studio中修復它(我認爲認爲刪除並重新添加項目工作)或手動通過記事本或其他東西。

我會讓你來決定哪個是更好的(嚴格遵守ProjectGuid或寬大處理時,路徑工程是已知的)

相關問題