15
devenv mysolution.sln /build "Release|Win32" /project myproject

/buildコマンドラインからビルドする場合、またはを実行するオプションがあるようですが、/rebuild「プロジェクトのみ」を実行したいとは言えません(つまり、指定されたプロジェクトの依存関係もビルドまたは再構築しません)。誰も方法を知っていますか?

4

7 に答える 7

21

ビルド システムの構造によっては、これが探しているものかもしれません。

msbuild /p:BuildProjectReferences=false project.proj
于 2008-09-23T20:30:17.313 に答える
10

MSBuildはあなたが望むものです

MSBuild.exe MyProject.proj /t:build
于 2008-09-23T20:27:49.940 に答える
3

を呼び出さずdevenvに、代わりに一般化されたビルド ツールを使用します。

vcbuild subproject.vcproj "release|win32"
于 2008-09-23T20:27:42.637 に答える
1

MSDNによると方法:MSBuild.exeを使用してソリューションで特定のターゲットを構築する

msbuild foo.sln /t:proj1:Rebuild;folder_of_proj2\proj2:Clean
于 2010-09-28T13:37:09.307 に答える
1

ソリューション全体ではなく、プロジェクトを構築する方法 - MSDN の記事

于 2011-04-04T06:54:41.753 に答える
0

以下は、VS2010 で単一の C++ プロジェクトをビルドする場合にうまく機能します。

call "%VS100COMNTOOLS%"\\vsvars32.bat
msbuild /detailedsummary /p:Configuration=Debug /p:Platform=x64 /t:build MY_ABSOLUTE_PATH.vcxproj

残念ながら、プロジェクト名とソリューション ファイルを指定してそのプロジェクトだけをビルドすることはできません (プロジェクト ファイルに特別な構成を追加しない限り)。

于 2013-03-22T22:10:00.757 に答える
0

答えてくれてありがとう。少し調べてみると、 ;ではなくファイルmsbuildを処理できることがわかりました。の場所を知る必要はなく、その方法でこれを達成できますか?.sln.vcproj.vcproj

一歩後退させてください。大きなソリューション ファイルがあり、これを行うスクリプトが必要です。

  1. /buildソリューション全体で実行します。(最後のビルド以降の変更量に対して必要なだけのビルドを行わない
    ために、一部のプロジェクトが失敗することがあります。)devenv
  2. 失敗したプロジェクトごとに、/rebuildそれに対して を実行します。

ステップ 2 に到達した時点でわかっているのは、ソリューションのファイル名と、失敗したプロジェクトの名前 (ファイル名ではない) だけです。私は簡単にファイルをgrep/ awk/ ある.slnファイルから別のファイルにマップすることができましmsbuildたが、それを直接行う方法が提供されているかどうか知りたいです。

(理想的にはmsbuild、再構築するすべて.slnのプロジェクトの名前と名前を1 つのコマンド ラインで指定できます。これはファイルが大きく、ロードに時間がかかるためです。それが不可能な場合は、すべてのプロジェクト ファイル名を手動で見つけるオプションの方がおそらく優れています。ソリューション ファイルを毎回ロードするのは最も非効率的です。)

于 2008-09-23T21:28:01.637 に答える