MSBuild 命令行参考

MSBuild 命令行参考

Visual Studio 2013

其他版本

使用 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 将使用计算机中的处理器总数作为其值。 有关详细信息,请参阅Building Multiple Projects in Parallel

下面的示例指示 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) 和How to: Use the Same Target in Multiple Project Files


/property:name=value


/p:name=value


设置或重写指定项目级属性,其中 name 是属性名称,value 是属性值。 单独指定每个属性,或使用分号或逗号分隔多个属性,如以下示例所示:

/property:WarningLevel=2;OutDir=bin\Debug


/target:targets


/t:targets


在项目中生成指定目标。 单独指定每个目标,或使用分号或逗号分隔多个目标,如以下示例所示:

/target:Resources;Compile

如果使用此开关指定任何目标,则它们会代替项目文件中的 DefaultTargets 特性中的任何目标来运行。 有关详细信息,请参阅Target Build OrderHow To: Specify Which Target to Build First

目标是一组任务。 有关详细信息,请参阅MSBuild Targets


/toolsversion:version


/tv:version


指定要用于生成项目的工具集的版本,如以下示例所示:/toolsversion:3.5

使用此开关可以生成项目并指定与 Project 元素 (MSBuild) 中指定的版本不同的版本。 有关详细信息,请参阅Overriding ToolsVersion Settings

对于 MSBuild 4.5,可以为 version 指定以下值:2.0、3.5 和 4.0。 如果指定 4.0,VisualStudioVersion 生成属性会指定要使用的子工具集。 有关详细信息,请参阅 MSBuild Toolset (ToolsVersion) 的“子工具集”一节。

包含用于生成应用程序的任务、目标和工具的工具集。 工具包括编译器例如 csc.exe 和 vbc.exe。 有关工具集的详细信息,请参阅MSBuild Toolset (ToolsVersion)Standard and Custom Toolset Configurations和 MSBuild Multitargeting Overview

 说明

工具集版本与目标框架不同,后者是生成项目以其其上运行的 .NET Framework 的版本。 有关详细信息,请参阅MSBuild Target Framework and Target Platform


/validate:[schema]


/val[schema]


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

如果没有指定 schema,则针对默认架构验证项目。

如果指定 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


将指定的参数传递到控制台记录器,后者会在控制台窗口中显示生成信息。 可以指定以下参数:

  • PerformanceSummary。 显示在任务、目标和项目中所花费的时间。
  • Summary。 在末尾显示错误和警告摘要。
  • NoSummary。 不在末尾显示错误和警告摘要。
  • ErrorsOnly。 仅显示错误。
  • WarningsOnly。 仅显示警告。
  • NoItemAndPropertyList。 如果详细级别设置为 diagnostic,则不在每个项目生成开头显示项和属性的列表。
  • ShowCommandLine。 显示 TaskCommandLineEvent 消息。
  • ShowTimestamp。 将时间戳显示为任何消息的前缀。
  • ShowEventId。 显示每个已启动事件、已完成事件和消息的事件 ID。
  • ForceNoAlign。 不将文本与控制台缓冲区大小对齐。
  • DisableConsoleColor。 将默认控制台颜色用于所有日志记录消息。
  • DisableMPLogging。 在非多处理器模式下运行时,禁用输出的多处理器日志记录样式。
  • EnableMPLogging。 启用多处理器日志记录样式(即使在非多处理器模式下运行)。 默认情况下,此日志记录样式处于启用状态。
  • Verbosity。 重写此记录器的 /verbosity 设置。

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

/consoleloggerparameters:PerformanceSummary;NoSummary /verbosity:minimal


/distributedFileLogger


/dfl


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

如果使用 /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

[number]


/fl[number]


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

可以使用 /fileLoggerParameters 开关指定文件位置和 fileLogger 的其他参数。


/fileloggerparameters:[number]

parameters


/flp:[ number]parameters


为文件记录器和分布式文件记录器指定任何额外参数。 此开关的存在意味着对应 /filelogger[number] 开关存在。 Number 可以是 1 到 9 的数字。

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

  • LogFile。 写入生成日志的日志文件的路径。 分布式文件记录器将此路径用作其日志文件的名称的前缀。
  • Append。 确定是将生成日志追加到日志文件还是覆盖它。 设置该开关时,生成日志将追加到日志文件。 此开关不存在时,将覆盖现有日志文件的内容。

    如果包含追加开关,则无论它是设置为 true 还是 false,都会追加日志。 如果不包含追加开关,则会覆盖日志。

    在此例中会覆盖文件:msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log

    在此例中会追加文件:msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log;append=true

    在此例中会追加文件:msbuild myfile.proj /l:FileLogger,Microsoft.Build.Engine;logfile=MyLog.log;append=false

  • Encoding。 指定文件的编码(例如,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
时间: 2024-08-05 14:46:53

MSBuild 命令行参考的相关文章

Net 服务命令行参考之一

转自:http://blog.sina.com.cn/s/blog_55035e9501015p05.html ----------------------------------最实用高效的网络管理命令 NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP | HELPMSG | LOCALGROUP | PAUSE | SESSION | SHARE | START | STATISTICS | STOP |

使用openssl在命令行加密

对于需要在应用软件中进行加密编程的开发者,通过命令行把基本的加密操作做一遍是很有意义的.openssl支持在命令行进行各种基本加密算法的操作.这些操作过程无需编程,其命令参数与程序函数调用加密的参数有着很好的直接对应关系.这些加密操作要素在各种不同的硬件.操作系统平台.加密软件库上是通用的.我们也可以直接在脚本程序中使用这些命令行的加密操作.由于无需编程,openssl自身又经过了较大范围.较长时间的实际应用检验,所以这里的加解密结果也可以作为自编程序的测试基准使用. openssl官网上提供了

使用devenv/MSBuild在命令行编译sln或csproj

一 使用devenv来build单个project devenv是VisualStudio的可执行程序,一般安装在“C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE”下.用来在命令行或GUI方式运行VisualStudio.其中devenv.com是命令行程序,devenv.exe是GUI的程序.默认地当你调用devenv的时候其实是启动devenv.com,除非你显示地调用devenv.exe才会启动GUI的Visu

python命令行参数处理模块 optparse 使用参考

from optparse import OptionParser parser = OptionParser() parser.add_option( '-f', '--file', dest='filename', help='write report to FILE', metavar='FILE' ) parser.add_option( '-q', '--quiet', action='store_false', dest='verbose', default=True, help='

Java-map-第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。 附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录

第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年份,请参考本章附录. 附录 历届世界杯冠军 届数 举办年份 举办地点 冠军 第一届 1930年 乌拉圭 乌拉圭 第二届 1934年 意大利 意大利 第三届 1938年 法国 意大利 第四届 1950年 巴西 乌拉圭 第五届 1954年 瑞士 西德 第六届 1958年 瑞典 巴西 第七届 1962年

psql命令行快速参考

psql的命令语法是: psql [options] [dbname [username]] psql命令行选项以及它们的意思在表1-1中列出.使用以下命令可以看到psql完整的选项列表: $ psql --help 表1-1 psql命令行选项 选项 意义 -a 从脚本中响应所有输入 -A 取消表数据输出的对齐模式:功能与“-P format=unaligned”相同 -c <查询> 仅仅运行一个简单的查询(或者内部命令)然后退出 -d <数据库名> 指定连接到的数据库名(默认为

windows下cmd命令行显示UTF8字符设置(CHCP命令)

在中文windows系统中,如果一个文本文件是utf-8编码的,那么在cmd.exe命令行窗口(所谓的dos窗口)中不能正确显示文件中的内容.在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集. 如果想正确显示UTF-8字符,可以按照以下步骤操作: 1.打开CMD.exe命令行窗口 2.通过 chcp命令改变代码页,UTF-8的代码页为65001 1 chcp 65001 执行该操作后,代码页就被变成UTF-8了.但是,在窗口中仍旧不能正确显示UTF-8字符

Java命令行程序构建工具-airline

以前对于开发Java命令行程序,我都是很头大的,命令行程序麻烦的是解析参数,以及一些帮助信息,今天在研究接口测试时偶然发现了一个工具可以让你快速构建命令行程序 github地址 airline 导入jar包 airline jar 在maven仓库里搜索适合你构建系统的语句 代码 我找了个解析har文件的项目,来讲解开发过程 定制自己的命令行 我的命令行以doctorq作为命令,参数为company,命令的完整格式应该为doctorq company XXXXX. @Command(name="

三个网站让你成为Linux命令行高手

[转载自http://www.linuxeden.com/html/news/20091119/69183.html] Linux的命令行是通向Linux高级应用的必经之路,Linux系统管理员.开发者都是学习对象.Susan Linton向我们推荐了三个学习Linux命令行的网站,现在介绍给大家: 1. LinuxCommand LinuxCommand是一个学习Linux命令行最好的网站之一.网站分为:学习Shell.写Shell脚本.脚本库.超级MAN页面. 2. O'Reilly的Lin