【发布时间】:2015-12-04 04:09:32
【问题描述】:
我正在使用 VS2010 (pro) 和 VS2015 Express。
最近(可能是由于安装了一些其他软件)我所有的 32 位版本都开始失败了
TRACKER:错误 TRK0002:无法执行命令:“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe”@C:\Users....rsp”。句柄无效。
(64 位版本继续工作)
问题似乎是 MSBuild 调用了 64 位版本的 Tracker。
Google 告诉我,其他人遇到了相反的问题,即 64 位构建得到相同的错误,而 32 位构建成功
查看 procmon 我发现 MSBUILD
(1) 打开注册表项
HKLM\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full
它的 InstallPath 值为
C:\Windows\Microsoft.NET\Framework\v4.0.30319\
(2) 尝试打开不存在的 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Tracker.exe
(3) 打开registryKey
HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86
(虽然不存在,但
HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-NetFx40Tools-x86
确实)
(4)打开文件
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\Tracker.exe
这会产生上面的错误
我无法解释“x64”的存在,尤其是当 MSBuild 似乎正在寻找以 -86 结尾的注册表项中的文件路径时
来自http://community.sharpdevelop.net/forums/p/11439/31258.aspx 有一个解决方法可以通过添加禁用跟踪器 .vcxproj 文件中的属性组为“假”。 但这需要更改许多此类文件 欢迎任何建议
【问题讨论】:
标签: c++ visual-studio-2010 msbuild