在Visual Studio 2010中,命令行工具vcbuild.exe将替换为msbuild.exe。可执行文件的改变意味着开关也会改变。 为了使迁移更容易,我创建了这个表作为新交换机的快速指南,并强调了这些工具之间的一些差异。 下表不是两个工具中提供的所有开关的完整表。
迁移到MSBuild需要具有不同扩展名的新项目类型(vcxproj)。 visualstudio附带了两个用于转换现有项目和解决方案的工具。 当处理单个项目时,“vcugrade.exe
在没有显式项目配置的情况下调用VCBuild时,默认情况下用于生成所有配置和平台矩阵,而MSBuild只生成默认的“Debug | Win32”。
在MSBuild中,/p[roperty]开关启用的任何功能也可以通过使用相应的名称设置环境变量来启用。 例如,命令行中的“set Configuration=Debug”等同于将“/p:Configuration=Debug”传递给所有MSBuild执行。
[]=帮助记住开关的可选字符
生成项目 |
VCBuild.exe |
MSBuild.exe |
构建解决方案 |
VCBuild.exe |
MSBuild.exe |
重建 |
/重建 |
/t[arget]:重建 |
清洁 |
/清洁 |
/t[目标]:干净 |
对INCLUDE和LIB使用环境变量 |
/使用环境 |
/p[属性]:useenv=真 |
多处理器构建* |
/米# |
/男:# |
站台 |
/平台: |
/p:平台= |
配置 |
<配置> |
/p:配置= |
强制链接(链接将始终执行) |
/forcelink公司 |
/t:构建链接 |
通行证 |
/密码0 |
/t:构建生成资源 |
|
/密码1 |
/t:编译 |
|
/密码2 |
/t:BuildLink/p:BuildType=构建 (BuildType属性启用增量生成跟踪) |
*命令行生成默认使用单个节点(/m:1)。 我们鼓励使用n个节点,其中n等于机器上的核心数。
MSBuild特定开关
单个文件生成(选定的文件生成) |
指定将在文件上执行的文件和工具的目标名称** |
/t:
/t:CLC编译 /p:SelectedFiles=“StdAfx.cpp;“主.cpp” |
预处理项目文件 |
通过内联将在生成期间导入的所有文件来聚合项目文件。 这实际上并不执行构建。 |
/pp:outfile.txt文件 |
文件记录 |
将生成记录到msbuild.log中。有关详细信息和选项,请参见msbuild帮助。 |
/文件记录器或/fl |
冗长 |
沉默或增加建造的细节。 安静,几乎不会出现 |
/V[erbosity]:(q[uiet]、m[minimal]、n[normal]、d[etailed]或diag[nostic]) |
详细摘要 |
在构建结束时提供统计和摘要。 |
/详细摘要或/ds |
**目前,我还不能提供一个工具列表,但是当MSDN准备就绪时,会有一个完整的可能目标列表。
如果我错过了任何你认为重要的选项,请在下面评论。 为了强调常用的开关,我省略了许多可能的开关。 如需进一步参考,请考虑以下链接:
MSBuild命令行参考- http://msdn.microsoft.com/en-us/library/ms164311.aspx
VC++在命令行上构建- http://msdn.microsoft.com/en-us/library/f35ctcxw%%28VS.100%%29.aspx
新的VC++项目/构建系统- https://channel9.msdn.com/posts/Charles/Bogdan-Mihalcea-The-New-VC-ProjectBuild-system-MSBuild-for-C/
Felix Huang公司
风险投资项目和建设团队