devenv mysolution.sln /build "Release|Win32" /project myproject
/build
コマンドラインからビルドする場合、またはを実行するオプションがあるようですが、/rebuild
「プロジェクトのみ」を実行したいとは言えません(つまり、指定されたプロジェクトの依存関係もビルドまたは再構築しません)。誰も方法を知っていますか?
devenv mysolution.sln /build "Release|Win32" /project myproject
/build
コマンドラインからビルドする場合、またはを実行するオプションがあるようですが、/rebuild
「プロジェクトのみ」を実行したいとは言えません(つまり、指定されたプロジェクトの依存関係もビルドまたは再構築しません)。誰も方法を知っていますか?
ビルド システムの構造によっては、これが探しているものかもしれません。
msbuild /p:BuildProjectReferences=false project.proj
MSBuildはあなたが望むものです
MSBuild.exe MyProject.proj /t:build
を呼び出さずdevenv
に、代わりに一般化されたビルド ツールを使用します。
vcbuild subproject.vcproj "release|win32"
MSDNによると方法:MSBuild.exeを使用してソリューションで特定のターゲットを構築する:
msbuild foo.sln /t:proj1:Rebuild;folder_of_proj2\proj2:Clean
ソリューション全体ではなく、プロジェクトを構築する方法 - MSDN の記事
以下は、VS2010 で単一の C++ プロジェクトをビルドする場合にうまく機能します。
call "%VS100COMNTOOLS%"\\vsvars32.bat
msbuild /detailedsummary /p:Configuration=Debug /p:Platform=x64 /t:build MY_ABSOLUTE_PATH.vcxproj
残念ながら、プロジェクト名とソリューション ファイルを指定してそのプロジェクトだけをビルドすることはできません (プロジェクト ファイルに特別な構成を追加しない限り)。
答えてくれてありがとう。少し調べてみると、 ;ではなくファイルmsbuild
を処理できることがわかりました。の場所を知る必要はなく、その方法でこれを達成できますか?.sln
.vcproj
.vcproj
一歩後退させてください。大きなソリューション ファイルがあり、これを行うスクリプトが必要です。
/build
ソリューション全体で実行します。(最後のビルド以降の変更量に対して必要なだけのビルドを行わないdevenv
/rebuild
それに対して を実行します。 ステップ 2 に到達した時点でわかっているのは、ソリューションのファイル名と、失敗したプロジェクトの名前 (ファイル名ではない) だけです。私は簡単にファイルをgrep
/ awk
/ ある.sln
ファイルから別のファイルにマップすることができましmsbuild
たが、それを直接行う方法が提供されているかどうか知りたいです。
(理想的にはmsbuild
、再構築するすべて.sln
のプロジェクトの名前と名前を1 つのコマンド ラインで指定できます。これはファイルが大きく、ロードに時間がかかるためです。それが不可能な場合は、すべてのプロジェクト ファイル名を手動で見つけるオプションの方がおそらく優れています。ソリューション ファイルを毎回ロードするのは最も非効率的です。)