MSBuild.exe を使用して、ソリューション内の特定のプロジェクトの特定のターゲットを構築できます。
ソリューション内の特定のプロジェクトの特定のターゲットを構築するには
コマンド ラインで、ディレクトリをソリューション フォルダーに変更し、
MSBuild.exe <SolutionName>.sln(または必要に応じて.slnx) と入力しますが、Enter キーを押さないでください。 あなたのソリューション名を使用してください。-target:スイッチの後のターゲットを <ProjectName>:<TargetName> の形式で指定します。 プロジェクト名に、%、$、@、;、.、(、)、または'のいずれかの文字が含まれている場合は、指定したターゲット名の_に置き換えます。
使用可能なターゲットがわからない場合は、 -targets (-ts) スイッチを使用して MSBuild を呼び出すことで、1 つのプロジェクトで使用可能なターゲットの一覧を取得できます。 たとえば、「 MSBuild.exe -ts SomeProject.proj 」のように入力します。
-targetsまたは-tsオプションは、ソリューション ファイルではなく、プロジェクト ファイルでのみ使用できます。
Example
次の例では、Rebuild プロジェクトのNotInSlnFolder ターゲットを実行し、Clean ソリューション フォルダーにあるInSolutionFolder プロジェクトのターゲットを実行します。
msbuild SlnFolders.sln -target:NotInSlnfolder:Rebuild;NewFolder\InSolutionFolder:Clean
特定のターゲットをビルドすると、他の依存ターゲットもビルドがトリガーされます。
注
targets スイッチで使用されるパスは、ファイルシステム パスではありません。 これはソリューションの内部表現のパスであり、 ソリューション エクスプローラーに表示されます。 たとえば、. スイッチで..やtargetsなどのファイルシステム パス構文を使用することはできません。 そのため、 NotInSlnFolder のような別のファイル システムの場所で参照されるプロジェクトでは明示的なパスは必要ありませんが、ソリューション フォルダー内のプロジェクト InSolutionFolder 必要があります。 ソリューションには、Visual Studio の Add>Solution フォルダー によって作成されたフォルダーを含めることもできます。 これらのフォルダーは、Visual Studio のソリューション エクスプローラーで表示するときに、 ソリューション 内のプロジェクトを整理するために使用されます。 ファイル システム内のレイアウトは、ソリューション フォルダーの構造とは異なる場合があります。
ソリューション フォルダーを参照してください。
トラブルシューティング
ソリューション プロジェクトを調べる場合は、MSBuild によって提供されるデバッグ オプションを使用してこれを行うことができます。
MSBUILDEMITSOLUTION=1環境変数を設定し、ソリューションをビルドします。 これにより、ビルド時に MSBuild のソリューションの内部ビューを表示する <SolutionName>.sln.metaproj という名前の MSBuild ファイルが生成されます。 このビューを調べて、ビルドに使用できるターゲットとその他の構成の詳細を確認できます。
この内部ビューが必要な場合を除き、この環境変数を設定してビルドしないでください。 この設定により、ソリューションでのプロジェクトのビルドに問題が発生する可能性があります。 代わりに バイナリ ログ を調べてください。
関連コンテンツ
- コマンド ライン リファレンス
- MSBuild リファレンス
- MSBuild
- MSBuild の概念