MSBuild コマンド ライン リファレンス
MSBuild.exe を使用してプロジェクト ファイルやソリューション ファイルをビルドするとき、スイッチをいくつか含めて、プロセスのさまざまな側面を指定できます。
MSBuild.exe [Switches] [ProjectFile]
引数
引数 |
説明 |
---|---|
ProjectFile |
指定したプロジェクト ファイル内でターゲットをビルドします。 プロジェクト ファイルを指定しない場合、MSBuild は、現在の作業ディレクトリからファイル名拡張子 "proj" を検索し、そのファイルを使用します。 この引数に Visual Studio ソリューション ファイルを指定することもできます。 |
スイッチ
スイッチ |
省略形 |
説明 |
---|---|---|
/help |
/? または /h |
使用方法を表示します。 たとえば、次のようなコマンドになります。 msbuild.exe /? |
/detailedsummary |
/ds |
ビルド ログの最後に、ビルドされた構成に関する詳細情報と、それらの構成がノードに対してどのようにスケジュールされているかについて表示します。 |
/ignoreprojectextensions: extensions |
/ignore: extensions |
ビルドするプロジェクト ファイルを決定するときに、指定した拡張子を無視します。 次の例に示すように、セミコロンまたはコンマを使用して複数の拡張子を区切ります。 /ignoreprojectextensions:.vcproj,.sln |
/maxcpucount[:number] |
/m[:number] |
ビルド時に使用する同時実行プロセスの最大数を指定します。 このスイッチが含まれていない場合、既定値は 1 です。 このスイッチを値を指定せずに含めると、MSBuild では、コンピューター上のプロセッサの数まで使用します。 詳細については、「MSBuild での複数のプロジェクトの並行ビルド」を参照してください。 次の例では、MSBuild に対して 3 つの MSBuild プロセスを使用してビルドするように命令するため、3 つのプロジェクトを同時にビルドできます。 msbuild myproject.proj /maxcpucount:3 |
/noautoresponse |
/noautorsp |
MSBuild.rsp ファイルが自動的に取り込まれないようにします。 |
/nodeReuse:value |
/nr:value |
MSBuild ノードの再利用を有効または無効にします。 次の値を指定できます。
ノードは実行中のプロジェクトに対応します。 /maxcpucount スイッチを含めた場合、複数のノードを同時に実行できます。 |
/nologo |
著作権情報を表示しません。 |
|
/preprocess[:filepath] |
/pp[:filepath] |
ビルド中にインポートされるすべてのファイルをインライン展開することで、単一の集約されたプロジェクト ファイルを作成します。ファイルの境界にはマークが挿入されます。 このスイッチを使用して、インポートされるファイル、ファイルのインポート元、およびビルドに関連するファイルを簡単に特定できます。 このスイッチを使用した場合、プロジェクトはビルドされません。 filepath を指定した場合、集約されたプロジェクト ファイルがファイルに出力されます。 それ以外の場合は、出力がコンソール ウィンドウに表示されます。 Import 要素を使用してプロジェクト ファイルを別のプロジェクト ファイルに挿入する方法については、「Import 要素 (MSBuild)」と「方法 : 複数のプロジェクト ファイルで同じターゲットを使用する」を参照してください。 |
/property:name=value |
/p:name=value |
指定したプロジェクト レベルのプロパティを設定またはオーバーライドします。name はプロパティ名、value はプロパティ値です。 各プロパティを個別に指定するか、次の例に示すようにセミコロンまたはコンマを使用して複数のプロパティを区切ります。 /property:WarningLevel=2;OutDir=bin\Debug |
/target:targets |
/t: targets |
プロジェクト内で指定されたターゲットをビルドします。 各ターゲットを個別に指定するか、次の例に示すようにセミコロンまたはコンマを使用して複数のターゲットを区切ります。 /target:Resources;Compile このスイッチを使用してターゲットを指定すると、これらのターゲットが実行され、プロジェクト ファイルの DefaultTargets 属性に指定されたターゲットは実行されません。 詳細については、「ターゲットのビルド順序」および「方法 : 最初にビルドするターゲットを指定する」を参照してください。 ターゲットとは、タスクのグループを表します。 詳細については、「MSBuild ターゲット」を参照してください。 |
/toolsversion:version |
/tv:version |
次の例に示すように、プロジェクトのビルドに使用するツールセットのバージョンを指定します: /toolsversion:3.5。 このスイッチを使用すると、プロジェクトをビルドし、「Project 要素 (MSBuild)」で指定したバージョンとは異なるバージョンを指定できます。 詳細については、「ToolsVersion 設定のオーバーライド」を参照してください。 MSBuild 4.5 では、version の値として 2.0、3.5、4.0 を指定できます。 4.0 を指定した場合、VisualStudioVersion ビルド プロパティでは、使用するサブツールセットを指定します。 詳細については、「MSBuild ツールセット (ToolsVersion)」の「サブツールセット」のセクションを参照してください。 ツールセットは、アプリケーションのビルドで使用するタスク、ターゲット、およびツールで構成されます。 ツールには、csc.exe や vbc.exe などのコンパイラが含まれます。 ツールセットの詳細については、「MSBuild ツールセット (ToolsVersion)」、「標準ツールセット構成とカスタム ツールセット構成」、「MSBuild のマルチ ターゲットの概要」を参照してください。 注意 ツールセットのバージョンは、ターゲット フレームワークのバージョン (ビルドするプロジェクトの実行対象となる .NET Framework のバージョン) と同じではありません。詳細については、「MSBuild ターゲット フレームワークおよびターゲット プラットフォーム」を参照してください。 |
/validate:[schema] |
/val[schema] |
プロジェクト ファイルを検証し、成功した場合はプロジェクトをビルドします。 schema を指定しない場合、プロジェクトは既定のスキーマに対して検証されます。 schema を指定した場合、プロジェクトは指定したスキーマに対して検証されます。 たとえば、次のように設定します。/validate:MyExtendedBuildSchema.xsd |
/verbosity:level |
/v:level |
ビルド ログに表示する情報量を指定します。 各 logger は、その logger に対して設定された詳細レベルに基づいてイベントを表示します。 詳細レベルには、q[uiet]、m[inimal]、n[ormal]、d[etailed]、および diag[nostic] を指定できます。 たとえば、次のように設定します。/verbosity:quiet |
/version |
/ver |
バージョン情報だけを表示します。 プロジェクトはビルドされません。 |
@file |
テキスト ファイルからコマンドライン スイッチを挿入します。 複数ファイルがある場合は、それらを個別に指定します。 詳細については、「MSBuild 応答ファイル」を参照してください。 |
ロガーのスイッチ
スイッチ |
省略形 |
説明 |
---|---|---|
/consoleloggerparameters: parameters |
/clp:parameters |
指定したパラメーターをコンソール logger に渡し、コンソール ウィンドウにビルド情報を表示します。 次のパラメーターを指定できます。
次の例に示すように、セミコロンまたはコンマを使用して複数のパラメーターを区切ります。 /consoleloggerparameters:PerformanceSummary;NoSummary /verbosity:minimal |
/distributedFileLogger |
/dfl |
各 MSBuild ノードのビルド出力を、そのノード独自のファイルに記録します。 これらのファイルの初期位置は、現在のディレクトリです。 既定では、ファイルの名前は "MSBuildNodeId.log" になります。 /fileLoggerParameters スイッチを使用して、ファイルの場所と fileLogger の他のパラメーターを指定できます。 /fileLoggerParameters スイッチを使用してログ ファイル名を指定すると、分散 logger はその名前をテンプレートとして使用し、各ノードのログ ファイルを作成するときに、その名前にノード ID を追加します。 |
/distributedlogger: central logger* forwarding logger |
/dl:central logger*forwarding logger |
MSBuild のイベントを記録して、各ノードに異なる logger インスタンスをアタッチします。 複数の logger を指定するには、各 logger を個別に指定します。 logger を指定するには、logger の構文を使用します。 logger の構文については、この後に示されている /logger スイッチを参照してください。 このスイッチを使用する方法を次の例に示します。 /dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral /dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll |
/fileLogger [number] |
/fl[number] |
ビルド出力を、現在のディレクトリにある単一のファイルに記録します。 number を指定しない場合、出力ファイルの名前は msbuild.log になります。 number を指定した場合、出力ファイルの名前は msbuildn.log になります。この n には、number が設定されます。 Number は、1 から 9 までの数値を指定できます。 /fileLoggerParameters スイッチを使用して、ファイルの場所と fileLogger の他のパラメーターを指定できます。 |
/fileloggerparameters:[number] parameters |
/flp:[ number] parameters |
ファイル logger と分散ファイル logger の追加のパラメーターを指定します。 このスイッチが指定されているということは、対応する /filelogger[number] スイッチが存在することを意味します。 Number は、1 から 9 までの数値を指定できます。 /consoleloggerparameters に示されているすべてのパラメーターを使用できます。 また、次のパラメーターを 1 つ以上使用することもできます。
次の例では、警告とエラー用に個別のログ ファイルを生成します。 /flp1:logfile=errors.txt;errorsonly /flp2:logfile=warnings.txt;warningsonly 次の例は、他の使用法を示しています: /fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8 /flp:Summary;Verbosity=minimal;LogFile=msbuild.sum /flp1:warningsonly;logfile=msbuild.wrn /flp2:errorsonly;logfile=msbuild.err |
/logger: logger |
/l:logger |
MSBuild からのイベントをログに記録する logger を指定します。 複数の logger を指定するには、各 logger を個別に指定します。 logger に対して次の構文を使用します。[LoggerClass,]LoggerAssembly[;LoggerParameters] LoggerClass に対して次の構文を使用します。[PartialOrFullNamespace.]LoggerClassName アセンブリに logger が 1 つしか含まれていない場合は、logger クラスを指定する必要はありません。 LoggerAssembly に対して次の構文を使用します。{AssemblyName[,StrongName] | AssemblyFile} logger のパラメーターは省略可能であり、入力されたとおりに logger に渡されます。 /logger スイッチを使用する例を次に示します。 /logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral /logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML |
/noconsolelogger |
/noconlog |
既定のコンソール logger を無効にし、イベントのログをコンソールに記録しません。 |
使用例
rebuild プロジェクトの MyProject.proj ターゲットをビルドする例を次に示します。
MSBuild.exe MyProject.proj /t:rebuild
MSBuild.exe を使用して、より複雑なビルドを実行できます。 たとえばそれを使用して、ソリューション内の特定のプロジェクトの特定のターゲットをビルドできます。 NotInSolutionFolder プロジェクトをリビルドし、InSolutionFolder ソリューション フォルダー内にある NewFolder プロジェクトを消去する例を次に示します。
msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean