vs2012 无法使用命令行提示符?ERROR: Cannot determine the location of the VS Common Tools folder.

来源:互联网 发布:虚拟币交易软件 编辑:程序博客网 时间:2024/06/03 22:41
vs2012 无法使用命令行提示符?

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

百度了很多方法,都是直接修改vcvars32.bat 文件指定具体路径:

VS2012命令提示符无法使用的解决方法

打开VS2012命令提示符时报错“ERROR: Cannot determine the location of the VS Common Tools folder.”

 

解决方法:

1.打开计算机->属性->高级系统设置

2.新建变量VS110COMNTOOLS,属性值设置为C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\

3.打开编译VC\bin目录下的vcvars32.bat文件,在第一行添加下列语句:

   @echo Setting environment for using Microsoft Visual Studio 2012 x64 tools
   @SET VSINSTALLDIR=c:\Program Files\Microsoft Visual Studio 11.0
   @SET VCINSTALLDIR=c:\Program Files\Microsoft Visual Studio 11.0\VC 
   @SET FrameworkDir32=c:\Windows\Microsoft.NET\Framework
   @SET FrameworkVersion32=v4.0.30319
   @SET Framework35Version=v3.5

  并注释掉下列语句:

   ::@call :GetVSCommonToolsDir
   ::@if "%VS110COMNTOOLS%"=="" goto error_no_VS110COMNTOOLSDIR

   ::@call "%VS110COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit


根本原因:公司禁用了注册表编辑器


查看vcvars32.bat 代码,可以看到,它使用reg命令从注册表取路径。由于禁用了注册表编辑器,reg无法运行。所以取不到路径。
:GetVSCommonToolsDir
@set VS110COMNTOOLS=
@call :GetVSCommonToolsDirHelper32 HKLM > nul 2>&1
@if errorlevel 1 call :GetVSCommonToolsDirHelper32 HKCU > nul 2>&1
@if errorlevel 1 call :GetVSCommonToolsDirHelper64 HKLM > nul 2>&1
@if errorlevel 1 call :GetVSCommonToolsDirHelper64 HKCU > nul 2>&1
@exit /B 0
:GetVSCommonToolsDirHelper32
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "11.0"') DO (
 @if "%%i"=="11.0" (
  @SET "VS110COMNTOOLS=%%k"
 )
)
@if "%VS110COMNTOOLS%"=="" exit /B 1
@SET "VS110COMNTOOLS=%VS110COMNTOOLS%Common7\Tools\"
@exit /B 0


解决办法:
取消禁用注册表编辑器!
1 0