38

コマンド ラインからソリューションをコンパイルするときの msbuild と devenv の使用の違いは何ですか?

msbuild はソリューションに含まれていない依存プロジェクトをビルドしますが、devenv はビルドしません。

他にもありますか?devenv ビルドと正確に一致させるために msbuild に渡すことができる特別なフラグはありますか?

PS私はVisual Studio 2010 SP1を使用しています

4

5 に答える 5

26

MSBuild の主な利点は、Visual Studio をインストールする必要がないことです。

MSBuild の 1 つの制限は、Visual Studio セットアップ プロジェクト ( .vdproj )のビルドをサポートしていないことです。

( devenv を呼び出す exec タスクを定義することでこれを回避できますが、それでも Visual Studio が必要です。)

于 2012-03-07T16:06:19.610 に答える
11

このMSDNブログエントリによると、違いを最小限に抑えようとしますが、存在するもの(つまり、プロパティの代わりに統合C#コンパイラを使用するcsc.exeか、プロパティを設定するBuildingInsideVisualStudio)は、主にビルド​​のパフォーマンスを最適化するために行われます。

于 2012-03-07T16:13:35.310 に答える
5

もう 1 つの大きな違いは、msbuildには存在しないオプションがいくつかあることですdevenv。私が知る限り、詳細度を上げる方法はありませんが、オプションdevenvで詳細度を上げることができmsbuildます:

/v:diag
于 2014-08-19T20:06:14.407 に答える
5

私は、開発者、テスター、デプロイヤーなどの多層チーム内でプロジェクトを経験しました。MSBuild は、デプロイ担当者の主要なツールでした。devenv を開かずに、MSBuild の xml 構成ファイルを編集してビルド パラメータを設定するだけで、コンパイルと再コンパイルを行うことができました。実際、devenv がまったくない本番前の環境で MSBuild を使用することがよくありました。

Nant は Apache Foundation による同様のツールです。

詳細については、こちらをご覧ください。

于 2012-03-07T15:51:24.047 に答える
3

devenvプロジェクトファイルが見つからないとエラーメッセージを書いたのに0を返すというケースに遭遇しました。対照的にmsbuild、ゼロ以外の値を返しました。msbuildエラーを見落とさないように、makefile を using に切り替えました。

于 2016-12-07T16:10:52.277 に答える