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 编译使用三个 MSBuild 处理,允许三个项目同时生成:

msbuild myproject.proj /maxcpucount:3

/noautoresponse

/noautorsp

不会自动包括任何 MSBuild.rsp 文件。

/nodeReuse:value

/nr:value

启用或禁用 MSBuild 节点重用。可以指定以下值:

  • true。节点持续,在生成完成后,以便后续编译中使用它们 (默认值)。

  • false。在生成完成后,节点无法保持。

节点对应于执行的项目。如果包含 /maxcpucount 开关,多个节点可以同时执行。

/nologo

不显示启动版权标志和版权消息。

/preprocess [:filepath]

/pp [:filepath]

在生成过程中,通过内联要导入的所有文件创建一个,合成项目文件,在其边界进行标记。可以使用此开关与导入的位置,文件,哪些更轻松地确定导入的文件,导致生成。当您使用此开关时,该项不进行生成。

如果指定 filepath,合成项目文件是输出到文件。否则,输出出现在控件个窗口。

有关如何使用 Import 元素的信息插入项目文件到另一个项目文件中,请参见 Import 元素 (MSBuild)如何:在多个项目文件中使用同一目标

/property:name=value

/p:name=value

设置或重写指定的项目级别特性,name 是属性名称,并 value 是属性值。分别指定每个属性或使用分号或逗号分隔多个属性,该属性,如下面的示例所示:

/property:WarningLevel=2;OutputDir=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 多定向概述

说明说明
工具集版本与目标 framework,是 .NET framework 的版本生成项目时运行。有关更多信息,请参见MSBuild 目标 Framework 和目标平台

/validate: [schema]

/val[schema]

验证项目文件,因此,如果验证成功,生成项目。

如果未指定 schema,项目验证默认 value 模式。

如果指定 schema,项目验证指定的模式。

下列设置为示例:/validate:MyExtendedBuildSchema.xsd

/verbosity:level

/v:level

在生成日志指定信息的显示。每个记录器显示基于该事件的详细级别为该记录器设置。

通过指定下列详细级别:q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]

下列设置为示例:/verbosity:quiet

/version

/ver

仅显示版本信息。该未生成项目。

@file

插入命令行开关从文本文件。如果有多个文件,您可以分别指定它们。有关更多信息,请参见MSBuild 响应文件

ms164311.collapse_all(zh-cn,VS.110).gif记录器开关

开关

缩写形式

描述

/consoleloggerparameters:parameters

/clp:parameters

通过指定到控件个记录器,显示在控件个窗口的生成信息的参数。可以指定以下参数:

  • PerformanceSummary。显示在任务、目标和项所花费的时间。

  • 摘要。显示错误和警告摘要在末尾。

  • NoSummary。不要显示错误和警告摘要在末尾。

  • ErrorsOnly。仅显示错误。

  • WarningsOnly。仅显示警告。

  • NoItemAndPropertyList。不要显示在每个项目生成开始时将显示项目和属性的列表,如果详细级别设置为 diagnostic

  • ShowCommandLine。显示 TaskCommandLineEvent 消息。

  • ShowTimestamp。显示时间戳作为前缀对所有消息。

  • ShowEventId。显示每个开始的事件、完成的事件和消息的事件 ID。

  • ForceNoAlign。不要对齐中的文本与控件个缓冲区区域的大小。

  • DisableConsoleColor。为所有日志消息使用默认值控制个颜色。

  • DisableMPLogging。运行时,在非多处理器模式时,请禁用输出多处理器日志记录样式。

  • EnableMPLogging。启用多处理器日志记录样式,即使当运行在非多处理器模式。默认情况下启用此日志记录样式。

  • 详细级别。重写设置为此记录器的 /verbosity

使用分号或逗号分隔多个参数,该参数,如下面的示例所示:

/consoleloggerparameters:PerformanceSummary;NoSummary /verbosity:minimal

/distributedFileLogger

/dfl

记录每个 MSBuild 节点的生成输出定向到其自己的文件中。这些文件的初始位置是当前目录。默认情况下,该文件名为“MSBuildNodeId.log”。可以使用 /fileLoggerParameters 开关用于 filelogger,microsoft.build 指定文件和其他参数的位置。

使用 /fileLoggerParameters 开关,如果命名一个日志文件,分布式记录器将使用名称作为模板并追加节点 ID 与该名称,当创建每个节点时一个日志文件。

/distributedlogger:central logger*forwarding logger

/dl:central logger*forwarding logger

从 MSBuild 记录事件,附加不同的记录器实例传递给每个节点。若要指定多个记录器,请分别指定每个记录器。

使用记录器语法指定记录器。有关记录器语法,请参见下面 /logger 开关。

下面的示例演示如何使用此开关:

/dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

/dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll

/fileLogger[数字]

/fl[number]

记录到单个文件的生成输出在当前目录。如果未指定 number,输出文件名为 msbuild.log。如果指定 number,输出文件名为 msbuildn.log,其中 n 是 number。Number 可以是从 1 的数字为 9。

可以使用 /fileLoggerParameters 开关用于 filelogger,microsoft.build 指定文件和其他参数的位置。

/fileloggerparameters:[数字] parameters

/flp: [ number] parameters

为文件记录器和分布式文件记录器指定所有其他参数。此开关出现提示对应/filelogger[number] 开关存在。Number 可以是从 1 的数字为 9。

您可以使用为 /consoleloggerparameters列出的所有参数。还可以使用以下一个或多个参数:

  • 日志文件。生成日志写入日志文件的路径。分布式文件记录器将此路径前缀对其日志文件的名称。

  • 追加。确定是否生成日志追加到日志文件或将其复盖。设置该开关时,生成日志将追加到日志文件中。如果未设置开关时,现有日志文件的内容被复盖。

  • 编码。指定文件编码 (例如,UTF-8、Unicode 或 ASCII)。

下面的示例生成警告和错误的单独日志文件:

/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使用以下语法:[LoggerClass,]LoggerAssembly[;LoggerParameters]

为 LoggerClass使用以下语法:[PartialOrFullNamespace.]LoggerClassName

如果程序集只包含一个记录器,您不必指定记录器选件类。

为 LoggerAssembly使用以下语法:{AssemblyName[,StrongName] |AssemblyFile}

因为当您输入参数,记录器参数是可选的和正确地传递给记录器。

下面的示例使用 /logger 开关。

/logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

/logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML

/noconsolelogger

/noconlog

禁用默认值控制个记录器,而且不希望录制到控件中。

示例

下面的示例生成 MyProject.proj 项目的 rebuild 目标。

MSBuild.exe MyProject.proj /t:rebuild

可以使用 MSBuild.exe 来执行更复杂的生成。例如,使用它,可以生成解决方案中的特定项目的特定目标。下面的示例重新生成项目 NotInSolutionFolder 并清理项目 InSolutionFolder,在 NewFolder 解决方案文件夹。

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

请参见

参考

常用的 MSBuild 项目属性

其他资源

MSBuild 参考