VS2010命令提示符出错:无法确定VS Common Tools文件夹的位置

SPk*_*SPk 68 visual-studio-2010

我安装了VS2010.安装会为VS2010命令提示符创建快捷方式但是当我打开命令提示符时出现错误:

无法确定VS Common Tools文件夹的位置.

我检查了环境变量VS100COMNTOOLS,它有值:C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\并且注册表HKEY_local_Machine\Software\Microsoft\Visual Studio\SxS\VS7 设置为:C:\Program Files\Microsoft Visual Studio 10.0\.

我检查了VSvars32.bat并尝试添加echo以找到它继续前进的位置.它在此命令失败:

@call :GetVSCommonToolsDirHelper32 HKLM > nul 2>&1
Run Code Online (Sandbox Code Playgroud)

kzf*_*abi 56

我有同样的问题,在这里找到答案.

问题是bat使用de reg命令并在PATH系统变量中搜索.不知怎的,你已经设法从PATH变量中获取"C:\ Windows\System32",所以只需转到系统变量(右键单击"我的电脑">"属性">高级配置>"环境变量",搜索PATH变量并在末尾添加以" ; " 分隔:C:\ Windows\System32

  • 首先尝试输入"reg query 1".如果它给你一个未找到的命令,那么你的问题就是路径问题.但是,如果出现"错误:管理员已禁用注册表编辑".然后,正如您所看到的,您有一个管理员错误(这是我的问题,因为我在公司开发箱上).在这种情况下,将问题推送到您的IT(或您自己,如果您可以给自己这个访问权限). (12认同)
  • 我有同样的问题@Copperpot了.我能够通过以管理员身份运行命令提示符来纠正这种情况. (2认同)

Kha*_*led 40

我在两台机器上遇到了同样的问题:Win8.1x64与Visual Studio Ultimate 2013(VS2013)和Win8x64与VS2013终极

问题:快捷方式" VS2012 x86 Native Tools命令提示符 ",它指向文件:C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\VC\vcvarsall.bat,它调用C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat尝试在注册表中搜索值名称"11.0":

reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "11.0"
Run Code Online (Sandbox Code Playgroud)

但是我的机器没有这个值"11.0",而是有"12.0"

我的解决方案是运行C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\vcvarsall.bat,它调用C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat正确查询注册表如下:

reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "12.0"
Run Code Online (Sandbox Code Playgroud)

所以从C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\VC\vcvarsall.bat更改/运行到C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\VC\vcvarsall.bat 解决了我的问题

  • VS2013专业有同样的问题.谢谢! (2认同)

akm*_*mad 29

这个问题刚刚开始发生,我可以通过更新位于C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\bin \文件夹中的vcvars32.bat文件来"修复"它(默认情况下) .在第一行之后添加以下内容:

@SET VSINSTALLDIR=c:\Program Files\Microsoft Visual Studio 10.0\
@SET VCINSTALLDIR=c:\Program Files\Microsoft Visual Studio 10.0\VC\
@SET FrameworkDir32=c:\Windows\Microsoft.NET\Framework\
@SET FrameworkVersion32=v4.0.30319
@SET Framework35Version=v3.5
Run Code Online (Sandbox Code Playgroud)

然后注释掉以下几行:

:: @call :GetVSCommonToolsDir
:: @if "%VS100COMNTOOLS%"=="" goto error_no_VS100COMNTOOLSDIR
:: @call "%VS100COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit
Run Code Online (Sandbox Code Playgroud)

在这里找到.请注意,我说修复引号,因为我没有检查以确保所有适当的变量都设置正确; 那说,粗略地看一看它似乎是有效的.

请注意,您必须在高架文本编辑器(即,以管理员身份运行)中编辑vcvars32.bat文件,才能在Vista和Windows 7中保存文件.

  • 您应该使用`%ProgramFiles(x86)%`环境变量而不是`c:\ Program文件\` - 列出的路径不存在或者是64位计算机上的骨架文件夹! (5认同)
  • 不得不在列出的目录(VSINSTALLDIR,VCINSTALLDIR,FrameworkDir32)的末尾添加\,但这也解决了我的问题.我无法访问我的注册表(即使我的登录配置为本地管理员),以查看是否有相应的值 - 我记得其中一个批处理文件检查注册表,但据我所知我的其他设置配置正确,仍然需要执行上述操作. (3认同)

jav*_*avs 10

在我的案例中,问题是PATH变量中的拼写错误.因为vsvars32.bat使用"reg"工具来查询注册表,所以它失败了,因为找不到该工具(只是reg在命令提示符上输入对我来说失败了).


小智 6

这是一篇很棒的文章.在对vcvarsall.bat文件进行所有更改之前,请尝试以管理员身份运行vs2010命令提示符.如果仍然无法解决问题,请尝试将C:\ Windows\System32添加到PATH环境变量中.如果所有其他方法都失败,请按上述方法编辑批处理文件.