MSBuild コマンド ライン リファレンスMSBuild command-line reference

MSBuild.exe を使用してプロジェクト ファイルやソリューション ファイルをビルドするとき、スイッチをいくつか含めて、プロセスのさまざまな側面を指定できます。When you use MSBuild.exe to build a project or solution file, you can include several switches to specify various aspects of the process.

すべてのスイッチは 2 つの形式 (-switch および /switch) で使用可能です。Every switch is available in two forms: -switch and /switch. このドキュメントでは、-switch の形式のみを示しています。The documentation only shows the -switch form.


MSBuild.exe [Switches] [ProjectFile]


引数Argument 説明Description
ProjectFile 指定したプロジェクト ファイル内でターゲットをビルドします。Builds the targets in the project file that you specify. プロジェクト ファイルを指定しない場合、MSBuild は、現在の作業ディレクトリからファイル名拡張子 proj を検索し、そのファイルを使用します。If you don't specify a project file, MSBuild searches the current working directory for a file name extension that ends in proj and uses that file. この引数に Visual Studio ソリューション ファイルを指定することもできます。You can also specify a Visual Studio solution file for this argument.


切り替えSwitch 省略形Short form 説明Description
-help-help /?/? または -hor -h 使用方法を表示します。Display usage information. たとえば、次のようなコマンドになります。The following command is an example:

msbuild.exe -?
-detailedsummary-detailedsummary -ds-ds ビルド ログの最後に、ビルドされた構成に関する詳細情報と、それらの構成がノードに対してどのようにスケジュールされているかについて表示します。Show detailed information at the end of the build log about the configurations that were built and how they were scheduled to nodes.
-ignoreprojectextensions: extensions-ignoreprojectextensions: extensions -ignore: extensions-ignore: extensions ビルドするプロジェクト ファイルを決定するときに、指定した拡張子を無視します。Ignore the specified extensions when determining which project file to build. 次の例に示すように、セミコロンまたはコンマを使用して複数の拡張子を区切ります。Use a semicolon or a comma to separate multiple extensions, as the following example shows:

-maxcpucount[:number]-maxcpucount[:number] -m[:number]-m[:number] ビルド時に使用する同時実行プロセスの最大数を指定します。Specifies the maximum number of concurrent processes to use when building. このスイッチが含まれていない場合、既定値は 1 です。If you don't include this switch, the default value is 1. このスイッチを値を指定せずに含めると、MSBuild では、コンピューター上のプロセッサの数まで使用します。If you include this switch without specifying a value, MSBuild will use up to the number of processors in the computer. 詳細については、「複数のプロジェクトの並行ビルド」を参照してください。For more information, see Building multiple projects in parallel.

次の例では、MSBuild に対して 3 つの MSBuild プロセスを使用してビルドするように命令するため、3 つのプロジェクトを同時にビルドできます。The following example instructs MSBuild to build using three MSBuild processes, which allows three projects to build at the same time:

msbuild myproject.proj -maxcpucount:3
-noautoresponse-noautoresponse -noautorsp-noautorsp MSBuild.rsp ファイルが自動的に取り込まれないようにします。Don't include any MSBuild.rsp files automatically.
-nodeReuse:value-nodeReuse:value -nr:value-nr:value MSBuild ノードの再利用を有効または無効にします。Enable or disable the re-use of MSBuild nodes. 次の値を指定できます。You can specify the following values:

- True- True. ビルドが完了した後もノードは維持され、後続のビルドでノードが再利用されます (既定値)。Nodes remain after the build finishes so that subsequent builds can use them (default).
- False- False. ビルドの完了後、ノードは維持されません。Nodes don't remain after the build completes.

ノードは実行中のプロジェクトに対応します。A node corresponds to a project that's executing. -maxcpucount スイッチを含めた場合、複数のノードを同時に実行できます。If you include the -maxcpucount switch, multiple nodes can execute concurrently.
-nologo-nologo 著作権情報を表示しません。Don't display the startup banner or the copyright message.
-preprocess[:filepath]-preprocess[:filepath] -pp[:filepath]-pp[:filepath] ビルド中にインポートされるすべてのファイルをインライン展開することで、単一の集約されたプロジェクト ファイルを作成します。ファイルの境界にはマークが挿入されます。Create a single, aggregated project file by inlining all the files that would be imported during a build, with their boundaries marked. このスイッチを使用して、インポートされるファイル、ファイルのインポート元、およびビルドに関連するファイルを簡単に特定できます。You can use this switch to more easily determine which files are being imported, from where the files are being imported, and which files contribute to the build. このスイッチを使用した場合、プロジェクトはビルドされません。When you use this switch, the project isn't built.

filepath を指定した場合、集約されたプロジェクト ファイルがファイルに出力されます。If you specify a filepath, the aggregated project file is output to the file. それ以外の場合は、出力がコンソール ウィンドウに表示されます。Otherwise, the output appears in the console window.

Import 要素を使用してプロジェクト ファイルを他のプロジェクト ファイルに挿入する方法については、「Import 要素 (MSBuild)」と「方法:複数のプロジェクト ファイルで同じターゲットを使用する」を参照してください。For information about how to use the Import element to insert a project file into another project file, see Import element (MSBuild) and How to: Use the same target in multiple project files.
-property:name=value-property:name=value -p:name=value-p:name=value 指定したプロジェクト レベルのプロパティを設定またはオーバーライドします。name はプロパティ名、value はプロパティ値です。Set or override the specified project-level properties, where name is the property name and value is the property value. 各プロパティを個別に指定するか、次の例に示すようにセミコロンまたはコンマを使用して複数のプロパティを区切ります。Specify each property separately, or use a semicolon or comma to separate multiple properties, as the following example shows:

-restore-restore -r-r 実際のターゲットをビルドする前に、Restore ターゲットを実行します。Runs the Restore target prior to building the actual targets.
-target:targets-target:targets -t:targets-t:targets プロジェクト内で指定されたターゲットをビルドします。Build the specified targets in the project. 各ターゲットを個別に指定するか、次の例に示すようにセミコロンまたはコンマを使用して複数のターゲットを区切ります。Specify each target separately, or use a semicolon or comma to separate multiple targets, as the following example shows:


このスイッチを使用してターゲットを指定すると、これらのターゲットが実行され、プロジェクト ファイルの DefaultTargets 属性に指定されたターゲットは実行されません。If you specify any targets by using this switch, they are run instead of any targets in the DefaultTargets attribute in the project file. 詳細については、「ターゲットのビルド順序」と「方法:最初にビルドするターゲットを指定する」を参照してください。For more information, see Target build order and How to: Specify which target to build first.

ターゲットとは、タスクのグループを表します。A target is a group of tasks. 詳細については、ターゲット を参照してください。For more information, see Targets.
-toolsversion:version-toolsversion:version -tv:version-tv:version 次の例に示すように、プロジェクトのビルドに使用するツールセットのバージョンを指定します: -toolsversion:3.5Specifies the version of the Toolset to use to build the project, as the following example shows: -toolsversion:3.5

このスイッチを使用すると、プロジェクトをビルドし、「Project 要素 (MSBuild)」で指定したバージョンとは異なるバージョンを指定できます。By using this switch, you can build a project and specify a version that differs from the version that's specified in the Project element (MSBuild). 詳細については、「ToolsVersion 設定をオーバーライドする」を参照してください。For more information, see Overriding ToolsVersion settings.

MSBuild 4.5 では、version の値として2.0、3.5、および 4.0 を指定できます。For MSBuild 4.5, you can specify the following values for version: 2.0, 3.5, and 4.0. 4.0 を指定した場合、VisualStudioVersion ビルド プロパティでは、使用するサブツールセットを指定します。If you specify 4.0, the VisualStudioVersion build property specifies which sub-toolset to use. 詳細については、「ツールセット (ToolsVersion)」の「サブツールセット」のセクションを参照してください。For more information, see the Sub-toolsets section of Toolset (ToolsVersion).

ツールセットは、アプリケーションのビルドで使用するタスク、ターゲット、およびツールで構成されます。A Toolset consists of tasks, targets, and tools that are used to build an application. ツールには、csc.exevbc.exe などのコンパイラが含まれます。The tools include compilers such as csc.exe and vbc.exe. ツールセットの詳細については、「ツールセット (ToolsVersion)」、「標準ツールセット構成とカスタム ツールセット構成」、および「マルチ ターゲットの概要」を参照してください。For more information about Toolsets, see Toolset (ToolsVersion), Standard and custom toolset configurations, and Multitargeting. 注: ツールセットのバージョンは、ターゲット フレームワークのバージョン (ビルドするプロジェクトの実行対象となる .NET Framework のバージョン) と同じではありません。Note: The toolset version isn't the same as the target framework, which is the version of the .NET Framework on which a project is built to run. 詳細については、「ターゲット フレームワークおよびターゲット プラットフォーム」を参照してください。For more information, see Target framework and target platform.
-validate:[schema]-validate:[schema] -val[schema]-val[schema] プロジェクト ファイルを検証し、成功した場合はプロジェクトをビルドします。Validate the project file and, if validation succeeds, build the project.

schema を指定しない場合、プロジェクトは既定のスキーマに対して検証されます。If you don't specify schema, the project is validated against the default schema.

schema を指定した場合、プロジェクトは指定したスキーマに対して検証されます。If you specify schema, the project is validated against the schema that you specify.

たとえば、次のように設定します。-validate:MyExtendedBuildSchema.xsdThe following setting is an example: -validate:MyExtendedBuildSchema.xsd
-verbosity:level-verbosity:level -v:level-v:level ビルド ログに表示する情報量を指定します。Specifies the amount of information to display in the build log. 各 logger は、その logger に対して設定された詳細レベルに基づいてイベントを表示します。Each logger displays events based on the verbosity level that you set for that logger.

詳細レベルには、q[uiet]m[inimal]n[ormal]d[etailed]、および diag[nostic] を指定できます。You can specify the following verbosity levels: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].

たとえば、次のように設定します。-verbosity:quietThe following setting is an example: -verbosity:quiet
-version-version -ver-ver バージョン情報だけを表示します。Display version information only. プロジェクトはビルドされません。The project isn't built.
@file テキスト ファイルからコマンドライン スイッチを挿入します。Insert command-line switches from a text file. 複数ファイルがある場合は、それらを個別に指定します。If you have multiple files, you specify them separately. 詳細については、「応答ファイル」を参照してください。For more information, see Response files.

ロガーのスイッチSwitches for loggers

切り替えSwitch 省略形Short form 説明Description

-clp:parameters-clp:parameters 指定したパラメーターをコンソール logger に渡し、コンソール ウィンドウにビルド情報を表示します。Pass the parameters that you specify to the console logger, which displays build information in the console window. 次のパラメーターを指定できます。You can specify the following parameters:

- PerformanceSummary- PerformanceSummary. タスク、ターゲット、およびプロジェクトで経過した時間を表示します。Show the time that's spent in tasks, targets, and projects.
- Summary- Summary. エラーや警告の概要を終了時に表示します。Show the error and warning summary at the end.
- NoSummary- NoSummary. エラーや警告の概要を終了時に表示しません。Don't show the error and warning summary at the end.
- ErrorsOnly- ErrorsOnly. エラーのみを表示します。Show only errors.
- WarningsOnly- WarningsOnly. 警告のみを表示します。Show only warnings.
- NoItemAndPropertyList- NoItemAndPropertyList. 詳細レベルが diagnostic に設定されている場合、各プロジェクト ビルドの開始時に項目とプロパティの一覧を表示しません。Don't show the list of items and properties that would appear at the start of each project build if the verbosity level is set to diagnostic.
- ShowCommandLine- ShowCommandLine. TaskCommandLineEvent メッセージを表示します。Show TaskCommandLineEvent messages.
- ShowTimestamp- ShowTimestamp. タイムスタンプをメッセージの先頭に表示します。Show the timestamp as a prefix to any message.
- ShowEventId- ShowEventId. 開始したイベント、終了したイベント、およびメッセージのイベント ID を表示します。Show the event ID for each started event, finished event, and message.
- ForceNoAlign- ForceNoAlign. テキストをコンソール バッファーのサイズに合わせません。Don't align the text to the size of the console buffer.
- DisableConsoleColor- DisableConsoleColor. すべてのログ メッセージに、コンソールの既定の色を使用します。Use the default console colors for all logging messages.
- DisableMPLogging- DisableMPLogging. マルチプロセッサ以外のモードで実行されている場合にマルチプロセッサ ログ出力方法を無効にします。Disable the multiprocessor logging style of output when running in non-multiprocessor mode.
- EnableMPLogging- EnableMPLogging. マルチプロセッサ以外のモードで実行されている場合でもマルチプロセッサ ログ出力方法を有効にします。Enable the multiprocessor logging style even when running in non-multiprocessor mode. このログ出力方法はデフォルトで有効です。This logging style is on by default.
- Verbosity- Verbosity. このロガーの -verbosity 設定をオーバーライドします。Override the -verbosity setting for this logger.

次の例に示すように、セミコロンまたはコンマを使用して複数のパラメーターを区切ります。Use a semicolon or comma to separate multiple parameters, as the following example shows:

-consoleloggerparameters:PerformanceSummary;NoSummary -verbosity:minimal
-distributedFileLogger-distributedFileLogger -dfl-dfl 各 MSBuild ノードのビルド出力を、そのノード独自のファイルに記録します。Log the build output of each MSBuild node to its own file. これらのファイルの初期位置は、現在のディレクトリです。The initial location for these files is the current directory. 既定では、ファイルの名前は MSBuild<NodeId>.log になります。By default, the files are named MSBuild<NodeId>.log. -fileLoggerParameters スイッチを使用して、ファイルの場所と fileLogger の他のパラメーターを指定できます。You can use the -fileLoggerParameters switch to specify the location of the files and other parameters for the fileLogger.

-fileLoggerParameters スイッチを使用してログ ファイル名を指定すると、分散ロガーはその名前をテンプレートとして使用し、各ノードのログ ファイルを作成するときに、その名前にノード ID を追加します。If you name a log file by using the -fileLoggerParameters switch, the distributed logger will use that name as a template and append the node ID to that name when creating a log file for each node.

central logger*

forwarding logger
-dl:central logger*forwarding logger-dl:central logger*forwarding logger MSBuild のイベントを記録して、各ノードに異なる logger インスタンスをアタッチします。Log events from MSBuild, attaching a different logger instance to each node. 複数の logger を指定するには、各 logger を個別に指定します。To specify multiple loggers, specify each logger separately.

logger を指定するには、logger の構文を使用します。You use the logger syntax to specify a logger. logger の構文については、この後に示されている -logger スイッチを参照してください。For the logger syntax, see the -logger switch below.

このスイッチを使用する方法を次の例に示します。The following examples show how to use this switch:



-fl[number]-fl[number] ビルド出力を、現在のディレクトリにある単一のファイルに記録します。Log the build output to a single file in the current directory. number を指定しない場合、出力ファイルの名前は msbuild.log になります。If you don't specify number, the output file is named msbuild.log. number を指定した場合、出力ファイルの名前は msbuild<n>.log になります。ここで、<n> は number です。If you specify number, the output file is named msbuild<n>.log, where <n> is number. Number は、1 から 9 までの数値を指定できます。Number can be a digit from 1 to 9.

-fileLoggerParameters スイッチを使用して、ファイルの場所と fileLogger の他のパラメーターを指定できます。You can use the -fileLoggerParameters switch to specify the location of the file and other parameters for the fileLogger.

-flp:[ number] parameters-flp:[ number] parameters ファイル logger と分散ファイル logger の追加のパラメーターを指定します。Specifies any extra parameters for the file logger and the distributed file logger. このスイッチが指定されているということは、対応する -filelogger[number] スイッチが存在することを意味します。The presence of this switch implies that the corresponding -filelogger[number] switch is present. Number は、1 から 9 までの数値を指定できます。Number can be a digit from 1 to 9.

-consoleloggerparameters に示されているすべてのパラメーターを使用できます。You can use all parameters that are listed for -consoleloggerparameters. また、次のパラメーターを 1 つ以上使用することもできます。You can also use one or more of the following parameters:

- LogFile- LogFile. ビルド ログが書き込まれるログ ファイルへのパス。The path to the log file into which the build log is written. 分散ファイル logger では、このパスをログ ファイル名の先頭に追加します。The distributed file logger prefixes this path to the names of its log files.
- Append- Append. ビルド ログを、ログ ファイルに追加して記録するか、ログ ファイルを上書きして記録するかについて指定します。Determines whether the build log is appended to the log file or overwrites it. このスイッチを設定すると、ビルド ログはログ ファイルに追加して記録されます。When you set the switch, the build log is appended to the log file. このスイッチを指定しないと、既存のログ ファイルの内容が上書きして記録されます。When the switch is not present, the contents of an existing log file are overwritten.
append スイッチを含めた場合、そのスイッチが true または false のどちらに設定されている場合でも、ログが追加して記録されます。If you include the append switch, no matter whether it is set to true or false, the log is appended. append スイッチを含めない場合、ログは上書きして記録されます。If you do not include the append switch, the log is overwritten.
次の場合、ファイルを上書きして記録します。msbuild myfile.proj -l:FileLogger,Microsoft.Build;logfile=MyLog.logIn this case the file is overwritten: msbuild myfile.proj -l:FileLogger,Microsoft.Build;logfile=MyLog.log
次の場合、ファイルを追加して記録します。msbuild myfile.proj -l:FileLogger,Microsoft.Build;logfile=MyLog.log;append=trueIn this case the file is appended: msbuild myfile.proj -l:FileLogger,Microsoft.Build;logfile=MyLog.log;append=true
次の場合、ファイルを追加して記録します。msbuild myfile.proj -l:FileLogger,Microsoft.Build;logfile=MyLog.log;append=falseIn this case the file is appended: msbuild myfile.proj -l:FileLogger,Microsoft.Build;logfile=MyLog.log;append=false
- Encoding- Encoding. ファイルのエンコード (UTF-8、Unicode、ASCII など) を指定します。Specifies the encoding for the file (for example, UTF-8, Unicode, or ASCII).

次の例では、警告とエラー用に個別のログ ファイルを生成します。The following example generates separate log files for warnings and errors:

-flp1:logfile=errors.txt;errorsonly -flp2:logfile=warnings.txt;warningsonly

次の例は、他の使用法を示しています:The following examples show other possibilities:

-fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8



-binaryLogger[:[LogFile=]output.binlog[;ProjectImports=[None,Embed,ZipFile]]]-binaryLogger[:[LogFile=]output.binlog[;ProjectImports=[None,Embed,ZipFile]]] -bl-bl すべてのビルド イベントをシリアル化し、バイナリ ファイルを作成します。Serializes all build events to a compressed binary file. 既定では、このファイルは現在のディレクトリに置かれ、名前は msbuild.binlog になります。By default the file is in the current directory and named msbuild.binlog. このバイナリ ログはビルド プロセスの詳しい説明であり、テキスト ログを再構築するために後で利用できます。また、他の分析ツールで利用できます。The binary log is a detailed description of the build process that can later be used to reconstruct text logs and used by other analysis tools. バイナリ ログは通常、最も詳しいテキスト診断レベルのログの 10 分の 1 から 20 分の 1 のサイズになります。A binary log is usually 10-20x smaller than the most detailed text diagnostic-level log, but it contains more information.

既定のバイナリ ロガーはプロジェクト ファイルのソース テキストを収集します。ビルド中に見つけられた、すべてのインポート済みファイルとターゲット ファイルも収集されます。The binary logger by default collects the source text of project files, including all imported projects and target files encountered during the build. 任意の ProjectImports スイッチでこの動作が制御されます。The optional ProjectImports switch controls this behavior:

- ProjectImports=None- ProjectImports=None. プロジェクト インポートを収集しません。Don't collect the project imports.
- ProjectImports=Embed- ProjectImports=Embed. ログ ファイルにプロジェクト インポートを埋め込みます (既定)。Embed project imports in the log file (default).
- ProjectImports=ZipFile- ProjectImports=ZipFile. プロジェクト ファイルを <output> に保存します。ここで、<output> はバイナリ ログ ファイル名と同じ名前になります。Save project files to <output> where <output> is the same name as the binary log file name.

ProjectImports の初期設定は Embed です。The default setting for ProjectImports is Embed.
: このロガーは、.cs.cpp など、MSBuild 以外のソース ファイルを収集しません。Note: the logger does not collect non-MSBuild source files such as .cs, .cpp etc.
.binlog ファイルは、プロジェクト/ソリューションの代わりに引数として msbuild.exe に渡すことで "再生" できます。A .binlog file can be "played back" by passing it to msbuild.exe as an argument instead of a project/solution. その他のロガーは、ログ ファイルに含まれている情報を、元のビルトが行われていたかのように受け取ります。Other loggers will receive the information contained in the log file as if the original build was happening. バイナリ ログとその使用法について詳しくは、 をご覧くださいYou can read more about the binary log and its usages at:

- -bl
- -bl:output.binlog
- -bl:output.binlog;ProjectImports=None
- -bl:output.binlog;ProjectImports=ZipFile
- -bl:..\..\custom.binlog
- -binaryLogger

-l:logger-l:logger MSBuild からのイベントをログに記録する logger を指定します。Specifies the logger to use to log events from MSBuild. 複数の logger を指定するには、各 logger を個別に指定します。To specify multiple loggers, specify each logger separately.

logger に対して次の構文を使用します。[``LoggerClass``,]``LoggerAssembly``[;``LoggerParameters``]Use the following syntax for logger: [``LoggerClass``,]``LoggerAssembly``[;``LoggerParameters``]

LoggerClass に対して次の構文を使用します。[``PartialOrFullNamespace``.]``LoggerClassNameUse the following syntax for LoggerClass: [``PartialOrFullNamespace``.]``LoggerClassName

アセンブリに logger が 1 つしか含まれていない場合は、logger クラスを指定する必要はありません。You don't have to specify the logger class if the assembly contains exactly one logger.

LoggerAssembly に対して次の構文を使用します。{``AssemblyName``[,``StrongName``] &#124; AssemblyFile``}Use the following syntax for LoggerAssembly: {``AssemblyName``[,``StrongName``] &#124; AssemblyFile``}

logger のパラメーターは省略可能であり、入力されたとおりに logger に渡されます。Logger parameters are optional and are passed to the logger exactly as you enter them.

-logger スイッチを使用する例を次に示します。The following examples use the -logger switch.


-noconsolelogger-noconsolelogger -noconlog-noconlog 既定のコンソール logger を無効にし、イベントのログをコンソールに記録しません。Disable the default console logger, and don't log events to the console.


MyProject.proj プロジェクトの rebuild ターゲットをビルドする例を次に示します。The following example builds the rebuild target of the MyProject.proj project.

MSBuild.exe MyProject.proj -t:rebuild


MSBuild.exe を使用して、より複雑なビルドを実行できます。You can use MSBuild.exe to perform more complex builds. たとえばそれを使用して、ソリューション内の特定のプロジェクトの特定のターゲットをビルドできます。For example, you can use it to build specific targets of specific projects in a solution. NotInSolutionFolder プロジェクトをリビルドし、NewFolder ソリューション フォルダー内にある InSolutionFolder プロジェクトを消去する例を次に示します。The following example rebuilds the project NotInSolutionFolder and cleans the project InSolutionFolder, which is in the NewFolder solution folder.

msbuild SlnFolders.sln -t:NotInSolutionfolder:Rebuild;NewFolder\InSolutionFolder:Clean

関連項目See also