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 的事件的记录器。若要指定多个记录器,请分别指定每个记录器。 记录器语法为: [LoggerClass,]LoggerAssembly[;LoggerParameters] LoggerClass 语法为: [PartialOrFullNamespace.]LoggerClassName
LoggerAssembly 语法为: {AssemblyName[,StrongName] | AssemblyFile} 记录器参数是可选的,并按键入的样式原样传递给记录器。例如: /logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML |
||
/distributedlogger:<中心记录器>*<转发记录器> |
使用此记录器记录来自 MSBuild 的事件。若要指定多个记录器,请分别指定每个记录器。(缩写形式为 /dl) <记录器> 语法为: [<记录器类>,]<记录器程序集>[;<记录器参数>] <记录器类> 语法为: [<部分或完整命名空间>.]<记录器类名> <记录器程序集> 语法为:{<程序集名称>[,<强名称] | <程序集文件>} <记录器参数> 是可选的,并按键入的样式原样传递给记录器。(缩写形式:/l) 示例:/dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral /dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll |
||
/consoleloggerparameters:parameters |
指定要传递给控制台记录器的参数。/clp 也是可接受的。可用的参数如下:
|
||
/verbosity:level |
在生成日志中显示此级别的信息量。各个记录器根据详细级别显示事件。还可将记录器配置为忽略详细级别设置。 可用的详细级别有:q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。/v 也是可接受的。例如: /verbosity:quiet |
||
/noconsolelogger |
禁用默认的控制台记录器并且不将事件记录到控制台。/noconlog 也是可接受的。 |
||
/validate:schema |
验证项目文件,如果验证成功,则将生成项目。 如果未指定 schema,将对照默认架构验证项目。 如果指定了 schema,将对照指定的架构验证项目。 |
||
/maxcpucount:number |
指定生成中涉及的辅助进程数。例如:C:\Windows\WinFX\v3.5>msbuild.exe *.proj /maxcpucount:3。此示例指示 MSBuild 使用三个 MSBuild.exe 进程来生成,这样便可并行生成三个项目。/m 也是可接受的。 |
||
/ignoreprojectextensions:<扩展名> |
在确定要生成的项目文件时要忽略的扩展名列表。使用分号或逗号分隔多个扩展名。(缩写形式:/ignore)示例:/ignoreprojectextensions:.vcproj,.sln |
||
/fileLogger |
将生成输出记录到当前目录中的一个文件(“msbuild.log”)中。文件的位置以及 fileLogger 的其他参数可通过添加“/fileLoggerParameters”开关来指定。(缩写形式:/fl) |
||
/distributedFileLogger |
将生成输出记录到多个日志文件中,每个 MSBuild 节点一个日志文件。这些文件的初始位置是当前目录。默认情况下,这些文件被称为“MSBuild<节点 ID>.log”。文件的位置以及 fileLogger 的其他参数可通过添加“/fileLoggerParameters”开关来指定。 如果通过 fileLoggerParameters 开关设置日志文件名,分布式记录器将使用 fileName 作为模板,并将节点 ID 追加到此 fileName 中,以便为每个节点创建一个日志文件。 |
||
/fileloggerparameters:<参数> |
指定文件记录器和分布式文件记录器的参数。(缩写形式:/flp) 可用的参数有: LogFile - 将生成日志写入其中的日志文件的路径。分布式文件记录器使用此参数作为其日志文件名的前缀。 Append - 确定生成日志是追加到日志文件中还是覆盖日志文件。设置该开关时,生成日志将追加到日志文件中。如果不设置该开关,则将覆盖现有日志文件的内容。默认设置为不追加到日志文件。 Verbosity - 重写默认的详细级别设置。 Encoding - 指定文件的编码,例如 UTF-8。 还可以使用任意控制台记录器参数。例如:/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:<参数> |
启用或禁用 MSBuild 节点的重用。参数是: True - 在生成完成后保留节点,并可由后续生成重用。 False - 在生成完成后不保留节点。(缩写形式:/nr)示例:/nr:true |
备注
若要将参数传递给默认的控制台记录器,请先用 /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