【问题标题】:Difference between VsDevCmd.bat & vcvarsall.bat in VS2012VS2012中VsDevCmd.bat和vcvarsall.bat的区别
【发布时间】:2012-11-26 07:08:40
【问题描述】:
两者有什么区别:
-
VsDevCmd.bat(VS2012 的开发者命令提示符)
-
vcvarsall.bat(VS2012 x86\x64\ARM Native\Cross Tools 命令提示符)
我对@987654323@ 有很好的理解,因为它是许多以前版本的 Visual Studio 的一部分。 vcvarsall.bat 基本上是我用于 MsBuild 的 goto 工具,即使在构建 .NET 项目时也是如此,尽管它在技术上是 Visual C++ 的一部分。
我不太了解的是VsDevCmd.bat。 VS2012 似乎是新的,我不确定它的目的是什么。我注意到它不在像vcvarsall.bat 这样的Visual C++ 文件夹中,而是在Visual Studio Tools 文件夹中。我现在应该在这个工具中做我的 .NET msbuilds 吗?如果是这样,我该如何设置与 vcvarsall.bat 相同类型的 x64\x86\ARM 默认值?
【问题讨论】:
标签:
msbuild
visual-studio-2012
【解决方案1】:
根据我的理解和查看 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
此文件与位于
中的 VsDevCmd.bat 文件相同
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat
这是从开始菜单打开时开发人员命令提示符所调用的内容。
因此,为了对平台进行更多控制,最好调用 vcvarsall.bat 并传递适当的选项:x86 或 amd64 或 arm 或 x86_amd64 或 x86_arm。