首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Visual中VsDevCmd.bat与vcvarsall.bat的区别

Visual中VsDevCmd.bat与vcvarsall.bat的区别
EN

Stack Overflow用户
提问于 2012-12-08 04:07:58
回答 2查看 8.5K关注 0票数 18

在以下方面有什么区别:

  • 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默认值

EN

回答 2

Stack Overflow用户

发布于 2013-05-20 22:48:49

根据我的理解,并查看了VS 2012中的各种批处理脚本:

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

代码语言:javascript
运行
复制
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat

此文件与位于

代码语言:javascript
运行
复制
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat

这就是开发人员在从“开始”菜单打开时调用的命令提示符。

因此,要在平台上进行更多的控制,最好调用vcvarsall.bat,并传递适当的选项:x86amd64armx86_amd64x86_arm

票数 7
EN

Stack Overflow用户

发布于 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 developmentDesktop 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://learn.microsoft.com/en-us/answers/questions/635862/what39s-the-differences-between-34developer-comman.html

https://learn.microsoft.com/en-us/visualstudio/msbuild/build-process-overview?view=vs-2022#visual-studio-builds-vs-msbuildexe-builds

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13774375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档