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

本文详细介绍了VS2012开发人员命令提示窗口中设置的各种环境变量及其来源,包括%VS110ComnTools%、%WindowsSdkDir%等关键变量,并解释了这些变量对于开发环境的重要性。

我电脑的配置:操作系统为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


转载于:https://my.oschina.net/Tsybius2014/blog/366187

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值