MSBuild コマンド ライン リファレンス
更新 : 2007 年 11 月
MSBuild.exe は、指定されたオプションを使用し、指定されたプロジェクトまたはソリューション ファイルをビルドします。
MSBuild.exe [Switches] [ProjectFile]
引数
引数 |
説明 |
---|---|
ProjectFile |
プロジェクト ファイル内で指定されたターゲットをビルドします。プロジェクト ファイルが指定されなかった場合、MSBuild は、現在の作業ディレクトリからファイル名拡張子 "proj" を検索し、そのファイルを使用します。この引数には、Visual Studio 2005 ソリューション ファイルを指定することもできます。 |
スイッチ
スイッチ |
説明 |
---|---|
/help |
使用方法を表示します。/? または /h も使用できます。この例を次に示します。 Msbuild.exe /? |
/nologo |
著作権情報および著作権メッセージを非表示にします。 |
/version |
バージョン情報だけを表示します。/ver も使用できます。 |
@file |
テキスト ファイルからコマンド ライン設定を挿入します。各応答ファイルを個別に指定します。詳細については、「MSBuild 応答ファイル」を参照してください。 |
/noautoresponse |
MSBuild.rsp ファイルを自動的にインクルードしません。/noautorsp も使用できます。 |
/target:targets |
このプロジェクトにこれらのターゲットをビルドします。セミコロン (;) またはコンマを使用して複数のターゲットを区切るか、または各ターゲットを個別に指定します。/t も使用できます。たとえば、次のように指定します。 /target:Resources;Compile |
/property:name=value |
これらのプロジェクトレベルのプロパティを設定またはオーバーライドします。name はプロパティ名、value はプロパティ値です。セミコロン (;) またはコンマを使用して複数のプロパティを区切るか、または各プロパティを個別に指定します。/p も使用できます。たとえば、次のように指定します。 /property:WarningLevel=2;OutputDir=bin\Debug |
/logger:logger |
MSBuild からのイベントをログに記録する logger を指定します。複数の logger を指定するには、各 logger を個別に指定します。 logger の構文は、次のとおりです。 [LoggerClass,]LoggerAssembly[;LoggerParameters] LoggerClass の構文は次のとおりです。 [PartialOrFullNamespace.]LoggerClassName
メモ :
アセンブリに logger が 1 つしかない場合は、logger クラスを指定する必要はありません。
LoggerAssembly の構文は次のとおりです。 {AssemblyName[,StrongName] | AssemblyFile} logger のパラメータは省略可能であり、入力されたとおりに logger に渡されます。たとえば、次のように指定します。 /logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML |
/distributedlogger:<central logger>*<forwarding logger> |
この logger を使用して、MSBuild からのイベントをログに記録します。複数の logger を指定するには、各 logger を個別に指定します (短縮形は /dl)。 <logger> の構文は、次のとおりです。 [<logger class>,]<logger assembly>[;<logger parameters>] <logger class> の構文は、次のとおりです。 [<partial or full namespace>.]<logger class name> <logger assembly> の構文は、{<assembly name>[,<strong name>] | <assembly file>} です。 <logger parameters> は省略可能であり、入力したとおりに logger に渡されます (短縮形は /l)。 例 : /dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral /dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll |
/consoleloggerparameters:parameters |
コンソール logger に渡されるパラメータを指定します。/clp も使用できます。使用できるパラメータは次のとおりです。
|
/verbosity:level |
ビルド ログにこの情報量を表示します。各 logger には、詳細出力レベルに応じたイベントが表示されます。logger は、詳細出力設定を無視するように構成することもできます。 利用可能な詳細出力レベルは、q[uiet]、m[inimal]、n[ormal]、d[etailed]、および diag[nostic] です。/v も使用できます。たとえば、次のように指定します。 /verbosity:quiet |
/noconsolelogger |
既定のコンソール logger を無効にし、イベントのログをコンソールに記録しません。/noconlog も使用できます。 |
/validate:schema |
プロジェクト ファイルを検証し、成功した場合はプロジェクトをビルドします。 schema を指定しない場合、プロジェクトは既定のスキーマに対して検証されます。 schema が指定されている場合、プロジェクトは指定されたスキーマに対して検証されます。 |
/maxcpucount:number |
ビルドに関連するワーカー プロセスの数を指定します。たとえば、C:\Windows\WinFX\v3.5>msbuild.exe *.proj /maxcpucount:3 となります。この例では、MSBuild に対して 3 つの MSBuild.exe プロセスを使用してビルドするように命令するため、3 つのプロジェクトを同時にビルドできます。/m も使用できます。 |
/ignoreprojectextensions:<extensions> |
ビルドするプロジェクト ファイルが決定されるときに、無視する拡張子の一覧です。セミコロンまたはコンマを使用して複数の拡張子を区切ります (短縮形は /ignore)。たとえば、/ignoreprojectextensions:.vcproj,.sln のように指定します。 |
/fileLogger |
ビルド出力のログを、現在のディレクトリの単一のファイル ("msbuild.log") に記録します。"/fileLoggerParameters" スイッチを追加して、ファイルの場所と、fileLogger の他のパラメータを指定できます (短縮形は /fl)。 |
/distributedFileLogger |
ビルド出力のログを、複数のログ ファイルに記録します。MSBuild ノードごとに、1 つのログ ファイルを作成します。これらのファイルの初期位置は、現在のディレクトリです。既定では、ファイルの名前は "MSBuild<nodeid>.log" となります。"/fileLoggerParameters" スイッチを追加して、ファイルの場所と、fileLogger の他のパラメータを指定できます。 fileLoggerParameters スイッチ経由でログ ファイル名を指定すると、分散 logger はテンプレートとして fileName を使用して、この fileName にノード ID を追加した形式で各ノードのログ ファイルを作成します。 |
/fileloggerparameters:<parameters> |
ファイル logger と分散ファイル logger のパラメータを指定します (短縮形は /flp)。 利用できるパラメータは、次のとおりです。 LogFile - ビルド ログが書き込まれるログ ファイルへのパス。分散ファイル logger は、これをログ ファイル名のプレフィックスとして使用します。 Append - ビルド ログを、ログ ファイルに追加して記録するか、ログ ファイルを上書きして記録するかについて指定します。このスイッチを設定すると、ビルド ログはログ ファイルに追加して記録されます。スイッチを設定しないと、既存のログ ファイルの内容が上書きされます。既定では、ログ ファイルへの追加は行われません。 Verbosity - 既定の詳細出力設定をオーバーライドします。 Encoding - ファイルのエンコード (UTF-8 など) を指定します。 任意のコンソール logger パラメータも使用できます。たとえば、/fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8 のように使用します。 |
/toolsversion:version |
プロジェクトのビルドに使用するツールセットのバージョンを指定します。このコマンドを使用すると、Project 要素 (MSBuild) に指定されたのとは異なるバージョンを使用してプロジェクトをビルドできます。この例を次に示します。 C:\Windows\WinFX\v3.5>msbuild.exe *.proj /ToolsVersion:3.5 /p:Configuration=Debug version の有効な値は、2.0、3.0、および 3.5 です。ツールセットの詳細については、「特定の .NET Framework を対象とするビルド」を参照してください。 |
/nodeReuse:<parameters> |
MSBuild ノードの再利用を有効または無効にします。次のパラメータがあります。 True - ビルドが完了した後もノードは維持され、後続のビルドで再利用されます。 False - ビルドの完了後、ノードは維持されません (短縮形は /nr)。たとえば、/nr:true のように使用します。 |
解説
パラメータを既定のコンソール logger に渡すには、/noconsolelogger を使用して無効にしてから、/logger 構文で指定します。たとえば、通常は診断詳細出力だけに表示されるパフォーマンスの概要を表示するには、次のコマンド ラインを使用します。
msbuild myproject.csproj /noconsolelogger /l:ConsoleLogger,Microsoft.Build.Engine.dll;performancesummary
使用例
MyProject.proj プロジェクトの rebuild ターゲットをビルドする例を次に示します。
MSBuild.exe MyProject.proj /t:rebuild
MSBuild.exe を使用して、より複雑なビルドを実行できます。たとえばそれを使用して、ソリューション内の特定のプロジェクトの特定のターゲットをビルドできます。NotInSolutionFolder プロジェクトを再度ビルドし、NewFolder ソリューション フォルダ内にある InSolutionFolder プロジェクトを削除する例を次に示します。
msbuild SlnFolders.sln /t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean