【Visual Studio 2010】修改注册表解决误删除某一版本sdk后的编译故障
安装了最新版的Win7 sdk(v7.1)后,觉得6.0a和7.0a的sdk挺碍眼,就都删除了。问题就来了:vs2008和vs2005可以用sdk自带的工具选择sdk的版本,但对vs2010无效。用vs2010新建的2.0、3.0、3.5版本的托管代码编译时都遇到问题:
"Task could not find "sgen.exe" using the SdkToolsPath "C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/bin/NETFX 4.0 Tools/" or the registry key
"HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SDKs/Windows/v7.0A". Make sure the SdkToolsPath is set and the tool exists in the correct processor specific location under the SdkToolsPath and that the Microsoft Windows SDK is installed"
google一下,发现这篇文章
http://www.gotknowhow.com/articles/task-could-not-find-sgen-exe-using-the-sdktoolspath-for-v70a
但对我来说的确算不上很好的解决办法(老版本的文件夹都删除了)
猜想可能编译器环境的路径问题,打开TuneUp Registry Editor,搜索V7.0A,在以下位置找到问题点:
解决方案一:
HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/MSBuild/ToolsVersions/4.0
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSBuild/ToolsVersions/4.0
把里面的相关键值的V7.0A替换成现在的SDK的版本(V7.1),再编译,通过.........
另外VC2010中的SDK的选择可以在工程中设置,Project->Property Pages->Configuration Properties->General->Platform Toolset 在下拉框中选择sdk的版本,路径也只能对单个工程设置了,感觉这样更好。
解决方案二:
你可以找一个已装的机器,将对方机器上的文件复制到注册中指定的路径下。即可解决,但需要些时间。
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2010anzhuangwenti/2020/0724/2405.html