buildbot c ++ build on windows:devenv.com、vcbuild.exe、またはmsbuild.exeを使用しますか?

StackOverflow https://stackoverflow.com/questions/2245078

質問

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

Devenv.comは、64ビットバージョンで構築する問題を抱えています。「Debug | X64」として構成を渡すと、パイプ文字のためにコマンドラインエラーが生成されます。引用符を逃がして囲むと、他のエラーが発生します。一部のエラーは、ディレクトリ名のスペースのために、奇妙に理解されているコマンドラインのためです。

vcbuild.exeとmsbuild.exeの両方を試しました。 vcbuild.exeは完全に機能します:私はそれに固執したいです。 MSBUILD.EXEは、反対側には、私の同僚がひどいと感じる完全に奇妙で複雑な出力を持っています。しかし、それはどこでも宣伝されています 構築する方法。

問題は、Devenv.com、vcbuild.exe、およびmsbuild.exeのどれが、時間内に続く可能性が最も高い方法ですか?

役に立ちましたか?

解決

MSBuild(Visual Studio 2010/.NET 4の前)自体はC ++プロジェクトを構築していません。 vcbuild.exeに呼びかけます。したがって、MSBuildを使用しないことが満足している場合は、C ++プロジェクトのためにそれに固執します。管理されたプロジェクトの場合(およびVS 2010を使用したC ++の場合)、MSBUILDを使用します。

他のヒント

MSBuildは、「最も持続する可能性が最も高い」方法です。 vcbuild.exeは死んでいます。最後のリリースは2008年でした。VS2008以前からVCプロジェクトを構築する必要がある場合、MSBuild 4.0は引き続き使用されます。 Devenv.exeに関しては、もちろん、それは単なる頭のないビジュアルスタジオです。機能的には、vsでヒットビルドと同じです。つまり、最近では、本質的にMSBuildに引き渡されているだけですが、MSBUILD.EXEよりも並列処理が少ない場合があります。 devenv.exeを使用する必要がある主な理由は、.vdproj(展開)プロジェクトです。これらのレガシーの事柄には、vsにハードコード化されたビルドプロセスがあります。 MSBUILDベースのWIXやInstallShieldなどの代替案をお勧めします。すべてがvsのすべてがmsbuildになるまで、今は長くありません。

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

ダン

私は同じ問題に遭遇し、Windows-Shell-Escapingのパイプ文字を解決しました。

"Debug^|Win32"

MSBUILD.EXEは、セットアッププロジェクトの構築方法を知りません(しませんでしたか?)。 Devenv.exeはそうします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top