离开我的机器几个星期后,我回来做了一些Qt-using-VC10的工作。问题的第一个迹象是关于" cl"的QtCreator错误。没有被识别,这让我发现C:\ Windows \ System32已经以某种方式从PATH中删除。无法识别" reg"命令使vcvarsall.bat无法设置VS100COMNTOOLS,如here所述。
上述线程指示我this,建议只需将C:\ Windows \ System32添加回PATH。
然而,我的烦恼还没有结束。一旦C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ vcvars32.bat(由vcvarsall.bat调用的脚本)能够调用" reg",它无法找到所需的密钥设置VS100COMNTOOLS。失败发生在以下行:
for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v "10.0"') DO (
@if "%%i"=="10.0" (
@SET "VS100COMNTOOLS=%%k"
)
)
我从vcvars32.bat获得的输出(具有未抑制的输出)是:
C:\Users\Bob\Desktop>for /F "tokens=1,2*" %i in ('reg query "HKLM\SOFTWARE\Micro
soft\VisualStudio\SxS\VS7" /v "10.0"') DO ()
ERROR: The system was unable to find the specified registry key or value.
果然,我的分支中指示的位置不存在。我的注册表树的相关子集如下所示:
HKEY_LOCAL_MACHINE\
SOFTWARE\
Microsoft\
VisualStudio\
10.0\
Debugger\
11.0\
...
9.0\
...
Debugger\
...
有谁知道这里发生了什么?在我两周的缺席后,自动窗口更新是否有责任?如何修复我的系统,以便vcvarsall.bat可以设置VS100COMNTOOLS?
答案 0 :(得分:1)
我的问题基本相同。在我的情况下,我试图只安装Visual Studio编译器和可再发行组件而没有任何Visual Studio IDE实例。我花了很长时间研究它,试图正确地解决它'没有不必要地强制环境变量或修改或添加注册表值。
大多数建议都是从卸载任何Visual Studio 2010重新分发和/或编译器开始,然后通常在安装Windows SDK后按特定顺序重新安装它们。
在我的情况下,这似乎有所帮助,但并未完全解决问题。我最后做了以下事情。先进入
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat
我注释掉了第10行,因为如果采用goto setup_buildsku
,%VisualStudioVersion%
变量永远不会像以前通常在文件中那样设置。 (vcbuildtools.bat
再也不会被调用并不重要,因为我在启动命令提示符时首先调用它。)
然后,在
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat
在标记的部分GetVSCommonToolsDir
中,它会在HKLM
和HKCU
的注册表中查找
SOFTWARE\Microsoft\VisualStudio\SxS\VS7
和
SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VS7
我遇到的问题是(因为只安装了构建工具?)没有VS7
个密钥,只有VC7
个密钥,因此查找失败。
因此,我在vcvarsall.bat
中注释了第99-103行,我的%VS140COMNTOOLSDIR%
和%VS100COMNTOOLSDIR%
变量未被触及。 (在调用vcvarsall.bat
之前,它们已在我的环境中设置。)
后来,我看到很多" ERROR: Cannot determine the location of the VS installation.
"但我的构建和编译仍然可以继续!
答案 1 :(得分:0)
是的,没错。我遇到了与丢失的regKey SxS相同的问题。 重新安装我的Visual Studio 10.0 - 更新SP1后,在HKM中重新定义了SxS HKM-RegKey。