VS2012中VsDevCmd.bat和vcvarsall.bat之间的区别

Aar*_*ack 14 msbuild visual-studio-2012

有什么区别:

  • VsDevCmd.bat(VS2012的开发人员命令提示符)
  • vcvarsall.bat(VS2012 x86\x64\ARM Native\Cross Tools命令提示符)

我对vcvarsall.bat有很好的理解,因为它是许多以前版本的Visual Studio的一部分.vcvarsall.bat基本上是我的msbuild的goto工具,即使在构建.NET项目时,即使它在技术上是Visual C++的一部分.

我不太了解的是VsDevCmd.bat.VS2012似乎是新的,我不确定它的目的是什么.我注意到它不在像vcvarsall.bat这样的Visual C++文件夹中,但它位于Visual Studio Tools文件夹中.我现在应该在这个工具中做我的.NET msbuild吗?如果是这样,我如何设置相同类型的x64\x86\ARM默认值,如vcvarsall.bat.

mu7*_*u7z 6

根据我的理解并查看VS2012中的各种批处理脚本:

用x86调用的vcvarsall.bat(或者只是没有选项的vcvarsall.bat,默认为x86)与VsDevCmd.bat相同.使用x86选项传递时vcvarsall.bat调用的批处理文件是

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat
Run Code Online (Sandbox Code Playgroud)

此文件与位于的VsDevCmd.bat文件相同

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat
Run Code Online (Sandbox Code Playgroud)

这是从开始菜单打开时开发人员命令提示符调用的内容.

因此,为了更好地控制平台,最好使用传递的适当选项调用vcvarsall.bat:x86或amd64或arm或x86_amd64或x86_arm.