MSBuild コマンド ライン リファレンス

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 も使用できます。 使用できるパラメーターは次のとおりです。

  • PerformanceSummary: タスク、ターゲット、およびプロジェクトで経過した時間を表示します。

  • NoSummary: ビルドの最後に表示されるエラーおよび警告の概要を非表示にします。

  • NoItemAndPropertyList: diagnostic 詳細出力で、各プロジェクト ビルドの最初に表示される項目およびプロパティの一覧を非表示にします。

/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)。

パラメーターの後にロガーを識別する数字を続けることで、最大で 10 個のファイル ロガーを使用できます。 たとえば、警告とエラー用に個別のログ ファイルを生成するには、/flp1:logfile=errors.txt;errorsonly /flp2:logfile=warnings.txt;warningsonly を使用します。

利用できるパラメーターは、次のとおりです。

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

参照

その他の技術情報

MSBuild リファレンス