2

私のビルドボットは、devenv.com を使用して 3 年間実行され、Windows でプロジェクトをコンパイルしています。

現在、devenv.com では 64 ビット バージョンのビルドに問題があります。構成を「Debug|x64」として渡すと、パイプ文字が原因でコマンド ライン エラーが発生します。エスケープして引用符で囲むと、他のエラーが発生します。ディレクトリ名にスペースが含まれているため、コマンドラインが奇妙に理解されているためです。

vcbuild.exe と MSBuild.exe の両方を試しました。vcbuild.exe は完璧に動作します。私はそれに固執したいと思います。一方、MSBuild.exe の出力は完全に奇妙で複雑で、同僚はひどいと感じています。しかし、それは構築するための方法としてどこでも宣伝されています。

問題は、devenv.com、vcbuild.exe、および MSBuild.exe のどれが、時間内に持続する可能性が最も高い方法かということです。

4

4 に答える 4

4

MSBuild (Visual Studio 2010/.NET 4 より前) 自体は C++ プロジェクトをビルドしません。vcbuild.exe を呼び出します。したがって、MSBuild を使用しないことに満足している場合は、C++ プロジェクトで MSBuild に固執します。マネージ プロジェクト (および VS 2010 を使用する C++) の場合は、MSBuild を使用します。

于 2010-02-11T18:53:25.077 に答える
3

MSBuildは、「最も持続する可能性が高い」メソッドです。VCBuild.exeは停止しています。前回のリリースは2008年でした。VS2008以前からVCプロジェクトをビルドする必要がある場合、MSBuild4.0は引き続きそれを使用します。devenv.exeに関しては、もちろん、それは単なるヘッドレスVisualStudioです。機能的には、VSでビルドを押すのと同じです。つまり、最近では、基本的にMSBuildに渡すだけですが、msbuild.exeよりも並列処理が少ない場合があります。devenv.exeを引き続き使用する必要がある主な理由は、.vdproj(展開)プロジェクトです。これらのレガシーなものには、VSにハードコードされたビルドプロセスがあります。MSBuildベースのWiXやInstallshieldのような代替手段をお勧めします。VSでビルドされるすべてのものがMSBuildになるまで、そう長くはかかりません。

つまり、MSBuildは未来です。展開プロジェクトやその他の特別な状況がない限り、MSBuildを使用してください。

ダン

于 2010-06-19T03:53:13.883 に答える
3

私は同じ問題に遭遇し、Windowsシェルでパイプ文字をエスケープすることで解決しました:

"Debug^|Win32"
于 2010-06-01T14:20:20.393 に答える
0

msbuild.exe は、セットアップ プロジェクトのビルド方法を知りません (知りませんでしたか?)。devenv.exe が行います。

于 2010-06-19T00:05:58.660 に答える