Microsoft Build
Engine是一个用于生成应用程序的平台。此引擎(也称为
MSBuild)为项目文件提供了一个 XML 架构,用于控制生成平台处理和生成软件的方式。 Visual
Studio 会使用 MSBuild,但它不依赖于 Visual Studio。
通过在你的项目或解决方案文件中调用 msbuild.exe,你可以在未安装 Visual Studio
的环境中安排和生成产品。
Visual Studio 使用 MSBuild 来加载和生成托管项目。Visual
Studio 中的项目文件(.csproj、.vbproj、vcxproj 等)包含 MSBuild XML 代码,当你使用 IDE
来生成项目时,此代码就会运行。Visual Studio
项目会导入所有必要的设置和生成过程来执行典型的开发工作,但你可以从 Visual Studio 内或通过使用 XML
编辑器对其进行扩展或修改。
下面的示例介绍了什么情况下可使用 MSBuild 命令行而不是 Visual Studio IDE 来运行生成。
1、未安装 Visual Studio。
2、你想要使用
64 位版本的 MSBuild。通常情况下不必使用此版本的 MSBuild,但它可以让 MSBuild
访问更多内存。
3、你想要在多个进程中运行同一生成。
不过,对于 C++ 和 C# 中的项目,你可以使用 IDE 实现相同的结果。
4、你想要修改生成系统。 例如,你可能想要实现以下操作:
你可以在 Visual Studio IDE 中编写代码,但使用 MSBuild 来运行生成。
或者,你也可以在开发计算机的 IDE 中生成代码,但使用 MSBuild
命令行生成从多个开发人员集成的代码。
在命令提示符处使用
MSBuild
若要在命令提示符处运行 MSBuild,请将项目文件随相应的命令行选项一起传递到
MSBuild.exe。 命令行选项允许你设置属性、执行特定的目标,以及设置可控制生成过程的其他选项。
例如,使用以下命令行语法生成文件 MyProj.proj
,并将
Configuration
属性设置为
Debug
。
MSBuild.exe MyProj.proj
/property:Configuration=Debug
语法:
MSBuild.exe [选项] [项目文件]
描述:
在项目文件中生成指定的目标。如果
未指定项目文件,MSBuild 将搜索
当前工作目录来查找文件扩展名
以“proj”结尾的文件并使用该文件。
开关(部分):
/target: 在此项目中生成这些目标。使用
分号或逗号分隔多个目标,或者分别指定
每个目标。(缩写: /t)
示例:
/target:Resources;Compile
/property:= 设置或重写这些项目级属性。 是
属性名, 为属性值。请使用
分号或逗号分隔多个属性,或者
分别指定每个属性。(缩写: /p)
示例:
/property:WarningLevel=2;OutDir=bin\Debug\
/toolsversion:
要在生成过程中使用的 MSBuild 工具集
(任务、目标等) 的版本。此版本将重写
个别项目指定的版本。(缩写:
/tv)
示例:
/toolsversion:3.5
/consoleloggerparameters:
控制台记录器的参数。(缩写: /clp)
可用的参数有:
PerformanceSummary -- 显示在任务、目标和项目上
花费的时间。
Summary -- 结束时显示错误和警告的摘要。
NoSummary -- 结束时不显示错误和警告
的摘要。
ErrorsOnly -- 仅显示错误。
WarningsOnly -- 仅显示警告。
NoItemAndPropertyList -- 在开始生成每个项目时不显示