前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >“VS2012开发人员命令提示”中涉及的环境变量

“VS2012开发人员命令提示”中涉及的环境变量

作者头像
用户3519280
发布2023-07-06 14:16:43
发布2023-07-06 14:16:43
4700
举报
文章被收录于专栏:c++ 学习分享c++ 学习分享

我电脑的配置:操作系统为32位Win7,VS版本为2012Ultimate,VS安装目录为“D:\Microsoft Visual Studio 11.0”

今天系统地研究了下“VS2012开发人员命令提示”,这个控制台用的就是Windows本身的控制台cmd.exe,只是在启动后执行了两个批处理脚本(扩展名BAT),在这两个脚本中从注册表里读取了若干个环境变量,打造了VS2012自己的开发人员命令提示。

这篇文章描述了批处理脚本“VsDevCmd.bat”和“VCVarsQueryRegistry.bat”为VS控制台添加的全部环境变量。本文描述的每个环境变量,都有以下两个属性:变量值是该环境变量在我的电脑中显示的值(这与我的计算机和VS安装路径有关),变量来源说明了该环境变量是怎么来的(即上面两个BAT文件是怎么获取的)。

1)%VS110ComnTools%

变量值:D:\Microsoft Visual Studio 11.0\Common7\Tools\

变量来源:下面四个注册表项中搜索键“11.0”,最先搜索到的非空字符串即为所求

HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7

HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7

HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7

HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7

将找出的值,最后添加上 Common7\Tools\,便是环境变量%VS110COMNTOOLS%的值

如果找不到这个环境变量,运行VS控制台就会报错(error_no_VS110COMNTOOLSDIR),错误内容为:

ERROR: Cannot determine the location of the VS Common Tools folder.

2)%WindowsSdkDir%

变量值:C:\Program Files\Windows Kits\8.0\

变量来源:下面四个注册表项中搜索键“InstallationFolder”,最先搜索到的非空字符串即为该环境变量的值

HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0

HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0

HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0

HKCU\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0

3)%WindowsSdkDir_old%

变量值:C:\Program Files\Microsoft SDKs\Windows\v8.0A

变量来源:下面四个注册表项中搜索键“InstallationFolder”,最先搜索到的非空字符串即为该环境变量的值

HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0a

HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0a

HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0a

HKCU\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0a

4)%GetWindowsSdkDir_35%

变量值:C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\

变量来源:下面四个注册表项中搜索键“InstallationFolder”,最先搜索到的非空字符串即为该环境变量的值

HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx35Tools

HKCU\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx35Tools

HKLM\SOFTWARE\Wow6432Node\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx35Tools

HKCU\SOFTWARE\Wow6432Node\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx35Tools

5)%ExtensionSdkDir%

变量值:C:\Program Files\Microsoft SDKs\Windows\v8.0\ExtensionSDKs

变量来源:

若文件%ProgramFiles%\Microsoft SDKs\Windows\v8.0\ExtensionSDKs\Microsoft.VCLibs\11.0\SDKManifest.xml存在,则%ProgramFiles%\Microsoft SDKs\Windows\v8.0\ExtensionSDKs

若文件%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.0\ExtensionSDKs\Microsoft.VCLibs\11.0\SDKManifest.xml存在,则%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.0\ExtensionSDKs

二者都存在则取后者

6)%VSInstallDir%

变量值:D:\Microsoft Visual Studio 11.0\

变量来源:下面四个注册表项中搜索键“11.0”,最先搜索到的非空字符串即为该环境变量的值

HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7

HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VS7

HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7

HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7

如果找不到这个环境变量,运行VS控制台就会报错(error_no_VSINSTALLDIR),错误内容为:

ERROR: Cannot determine the location of the VS installation.

7)%VCInstallDir%

变量值:D:\Microsoft Visual Studio 11.0\VC\

变量来源:下面四个注册表项中搜索键“11.0”,最先搜索到的非空字符串即为该环境变量的值

HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7

HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7

HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7

HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7

8)%FSharpInstallDir%

变量值:C:\Program Files\Microsoft SDKs\F#\3.0\Framework\v4.0\

变量来源:下面四个注册表项中搜索键“ProductDir”,最先搜索到的非空字符串即为该环境变量的值

HKLM\SOFTWARE\Microsoft\VisualStudio\11.0\Setup\F#

HKCU\SOFTWARE\Microsoft\VisualStudio\11.0\Setup\F#

HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\11.0\Setup\F#

HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\11.0\Setup\F#

9)%FrameworkDir32% (仅限32bit)

变量值:C:\Windows\Microsoft.NET\Framework\

变量来源:下面四个注册表项中搜索键“FrameworkDir32”,最先搜索到的非空字符串即为该环境变量的值

HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7

HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7

HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7

HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7

如果找不到这个环境变量,运行VS控制台就会报错(error_no_FrameworkDIR32),错误内容为:

ERROR: Cannot determine the location of the .NET Framework 32bit installation.

10)%FrameworkVersion32% (仅限32bit)

变量值:v4.0.30319

变量来源:下面四个注册表项中搜索键“FrameworkVer32”,最先搜索到的非空字符串即为该环境变量的值

HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7

HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7

HKLMreg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7

HKCUreg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7

如果找不到这个环境变量,运行VS控制台就会报错(error_no_FrameworkVer32),错误内容为:

ERROR: Cannot determine the version of the .NET Framework 32bit installation.

11)%FrameworkDir64% (仅限64bit)

变量值:(无)

变量来源:下面四个注册表项中搜索键“FrameworkDir64”,最先搜索到的非空字符串即为该环境变量的值

HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7

HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7

HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7

HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7

12)FrameworkVer64 (仅限64bit)

变量值:(无)

变量来源:下面四个注册表项中搜索键“FrameworkVer64”,最先搜索到的非空字符串即为该环境变量的值

HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VC7

HKCU\SOFTWARE\Microsoft\VisualStudio\SxS\VC7

HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7

HKCU\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7

13)%Framework35Version%

直接指定为v3.5

如果找不到这个环境变量,运行VS控制台就会报错(error_no_Framework35Version),错误内容为:

ERROR: Cannot determine the .NET Framework 3.5 version.

14)%FrameworkDir%

同%FrameworkDir32%

15)%FrameworkVersion%

同%FrameworkVersion32%

16)%DevEnvDir%

变量值:D:\Microsoft Visual Studio 11.0\Common7\IDE\

变量来源:%VSINSTALLDIR%Common7\IDE\

17)%path%、%include%、%lib%、%libpath%

PATH环境变量:运行某个命令的时候,本地查找不到某个命令或文件,会到这个声明的目录中去查找

其余几个环境变量的意义,可以在下面两个MSDN页面中看到:

1. http://msdn.microsoft.com/zh-cn/library/kezkeayy%28v=vs.80%29.aspx

CL 工具使用下列环境变量:

CL(如果已定义)。在处理命令行之前,CL 工具处理在 CL 环境变量中定义的选项和参数。

INCLUDE,它必须指向 Visual C++ 安装的 \include 子目录

LIBPATH,它指定从中搜索使用 #using 引用的元数据文件的目录

2. http://msdn.microsoft.com/zh-cn/library/6y6t9esh.aspx

LINK 工具使用下列环境变量:

LINK(如果已定义)。 在处理命令行之前,LINK 工具处理在 LINK 环境变量中定义的选项和参数。

LIB(如果已定义)。 LINK 工具在搜索对象、库或在命令行上或由 /BASE 选项指定的其他文件时,使用 LIB 路径。 它还使用 LIB 路径查找在对象中指定的 .pdb 文件。 LIB 变量可包含一个或多个由分号分隔的指定路径。 一个路径必须指向 Visual C++ 安装的 \lib 子目录。

PATH,如果该工具需要运行 CVTRES 并且找不到与 LINK(链接)其自身相同的目录中的文件。(LINK 需要 CVTRES 链接一个 .res 文件。)PATH 必须指向 Visual C++ 安装的 \bin 子目录。

TMP,以在链接 OMF 或 .res 文件时指定一个目录。

---------------------------------------------------

批处理脚本“VsDevCmd.bat”和“VCVarsQueryRegistry.bat”添加的这四个环境变量列表:

(有些环境变量因计算机具体环境不同,可能不会被添加)

★PATH

%WindowsSdkDir_old%bin\NETFX 4.0 Tools;

%WindowsSdkDir_35%;

%WindowsSdkDir%bin\x86;

%VSINSTALLDIR%Team Tools\Performance Tools;

%ProgramFiles%\HTML Help Workshop;

%ProgramFiles(x86)%\HTML Help Workshop;

%VCINSTALLDIR%VCPackages;

%FrameworkDir%%Framework35Version%;

%FrameworkDir%%FrameworkVersion%

%VSINSTALLDIR%Common7\Tools;

%VCINSTALLDIR%BIN;

%DevEnvDir%;

%VSINSTALLDIR%VSTSDB\Deploy;

%FSHARPINSTALLDIR%;

%DevEnvDir%CommonExtensions\Microsoft\TestWindow;

★INCLUDE

%WindowsSdkDir%include\shared;

%WindowsSdkDir%include\um;

%WindowsSdkDir%include\winrt;

%VCINSTALLDIR%ATLMFC\INCLUDE;

%VCINSTALLDIR%INCLUDE;

★LIB

%WindowsSdkDir%lib\win8\um\x86;

%VCINSTALLDIR%ATLMFC\LIB;

%VCINSTALLDIR%LIB;

★LIBPATH

%WindowsSdkDir%References\CommonConfiguration\Neutral;

%ExtensionSDKDir%\Microsoft.VCLibs\11.0\References\CommonConfiguration\neutral;

%VCINSTALLDIR%ATLMFC\LIB;

%VCINSTALLDIR%LIB;

%FrameworkDir%%Framework35Version%;

%FrameworkDir%%FrameworkVersion%;

附:几个注册表用到的缩写

HKCR: HKEY_CLASSES_ROOT

HKCU: HKEY_CURRENT_USER

HKLM: HKEY_LOCAL_MACHINE

HKU: HKEY_USERS

HKCC: HKEY_CURRENT_CONFIG

END

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档