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 节点重用。 可以指定以下值:
节点对应于执行的项目。 如果包含 /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 响应文件。 |
记录器开关
开关 |
缩写形式 |
描述 |
---|---|---|
/consoleloggerparameters:parameters |
/clp:parameters |
通过指定到控件个记录器,显示在控件个窗口的生成信息的参数。 可以指定以下参数:
使用分号或逗号分隔多个参数,该参数,如下面的示例所示: /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列出的所有参数。 还可以使用以下一个或多个参数:
下面的示例生成警告和错误的单独日志文件: /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