私は、その中にたくさんのc#プロジェクトを持つ多くのソリューションフォルダを持つソリューションを持っています。
コマンドラインからこれらのプロジェクトの1つだけをビルド/リビルドするにはどうすればよいですか?
msbuild
を使用してそれを行う方法はあると思いますが、msbuildについては何も知りません。
ありがとう!
単にmsbuild
を呼び出して、ビルドする.csproj/.vbprojプロジェクトファイルを渡すと、そのファイルのみが実行されます。
のようなもの:
cd \MySolution
msbuild .\Project1\Project1.csproj
プロジェクトが含まれるソリューションファイルがあり、1つのプロジェクトをビルド/再構築する場合。
MSDNのこのWebページには、あなたがしなければならないことが正確にリストされています。
http://msdn.Microsoft.com/en-us/library/ms171486.aspx
したがって、プロジェクトを含むソリューションファイルmysolution.slnを指定します。
それらはすべて下から上への順序で互いに依存しています。 baz
が最も独立しているため、bar
はbaz
に依存し、foo
はbar
に依存します。
Fooを構築する場合は、次のようにします。
MSBuild mysolution.sln /target:foo
ここでの他の回答は、依存関係については説明しませんでした。確かにmsbuild.exeは単一のプロジェクトファイル(つまりfoo.vcxproj)をビルドしますが、barとbazがまだビルドされていないと失敗します。複数のプロジェクトを構築し、最初に独立したプロジェクトを構築するには、ソリューションファイルを渡す必要があります(すべてのOPがこれをソリューションファイルの一部であると言及した後)。次に、プロジェクト名とコロンで区切られたターゲットを渡します。
MSBuild mysolution.sln /target:foo:Rebuild
ここで大きな仮定。プロジェクト名$(ProjectName)がファイル名と一致すると仮定しています。
Edit(from comment ):プロジェクト名にドット(。)が含まれている場合は、それらをアンダースコア(_)に置き換えます。
コマンドラインからMSBuildを使用する方法の詳細については、 this リファレンスを参照してください。必要なものの例を次に示します。
MSBuild.exe MyProject.proj /t:rebuild