15

有什么区别:

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

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

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

4

1 回答 1

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

此文件与位于

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat

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

因此,为了在平台上进行更多控制,最好调用 vcvarsall.bat 并传递适当的选项:x86 或 amd64 或 arm 或 x86_amd64 或 x86_arm。

于 2013-05-20T22:48:49.733 回答