在以下方面有什么区别:
VsDevCmd.bat
(VS2012的开发人员命令提示符)vcvarsall.bat
(VS2012 x86\x64\ARM本机\交叉工具命令提示符)我对vcvarsall.bat
有很好的理解,因为它在许多以前的版本中都是Visual的一部分。vcvarsall.bat
基本上是我的MsBuild的goto工具,即使在构建.NET项目时也是如此,尽管它在技术上是VisualC++的一部分。
我对VsDevCmd.bat
没有很好的理解。它似乎是新的VS2012,我不知道它的目的是什么。我注意到它不是像C++那样在Visual文件夹中,而是在Visual文件夹中。
我现在应该在这个工具中做我的.NET msbuild吗?如果是这样,如何设置与vcvarsall.bat
相同的x64\x86\ARM默认值
发布于 2013-05-20 22:48:49
根据我的理解,并查看了VS 2012中的各种批处理脚本:
使用x86调用的vcvarsall.bat
(或者只有没有选项的vcvarsall.bat
,默认为x86
)与VsDevCmd.bat
是完全相同的。vcvarsall.bat
在传递x86
选项时调用的批处理文件是
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
。
发布于 2022-06-17 08:38:46
所有这些脚本都用于来自控制台的各种开发活动,而不是IDE。用于建筑、连接、反打桩等。
VsDevCmd.bat
应用于整个Visual环境。包括配置C/ C++构建环境。它也适用于.NET和C#等。默认情况下,它的目标是从x86 for x86构建(这可以通过传递给这个脚本的参数来改变)。应该注意的是,这个脚本有一个PowerShell版本。
https://learn.microsoft.com/en-us/visualstudio/ide/reference/command-prompt-powershell?view=vs-2022
vcvarsall.bat
主要用于配置C/ C++构建环境。您可以使用此脚本的参数来更改目标和主机体系结构。此脚本还与已经选择目标和主机体系结构且不需要在脚本调用参数中传递的脚本有关。
https://learn.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-170
如果要执行C/ C++活动,最好使用vcvarsall.bat
。因为根据上面链接中的Microsoft文档和vcvarsall.bat
文件中的注释,这个脚本可以更改一些系统变量,以配置C/ C++的构建类型,而不是点网的构建类型。
当您使用更多不同的工作负载和附加包时,可能会出现差异。
例如,我安装了.NET desktop development
、Desktop development with C++
和VS IDE 2022
,在运行vcvarsall.bat
脚本之后,它还添加了Platform
系统变量。
在某种程度上,脚本vcvarsall.bat
最终运行了脚本VsDevCmd.bat
。
我不知道使用VsDevCmd.bat
脚本构建C/ C++是否是100%安全的。我无法确定什么时候会发生差异,以及额外设置的系统变量会影响什么。根据Microsoft的文档,为安装在Visual中的功能生成(改编) BAT脚本。
最好是有人从微软谈论这个部分。
MSBuild、nmake和cmake可以从这两个脚本中运行。
有关:
https://stackoverflow.com/questions/13774375
复制相似问题