1 知识点普及
在系统包含两个regedit.exe,他们的位置是:
- "C:\Windows\regedit.exe"
- "C:\Windows\SysWOW64\regedit.exe"
2. 问题描述
今天使用 visual studio 2012 创建ArcGIS的Add-in插件项目结果报这样一个错误:
visual studio没有为ToolsVersion14.0指定MSBuildToolsPath,指定的值的计算结果为空字符串
3 问题原因
我电脑之前安装了VS2015和VS2012,后来感觉VS2015不经常用,就手贱把VS2015给卸载,然后干啥都正常,就创建Addin插件老师报错
看到这个错误,我的第一直觉就是改注册表,然后自觉的win+R,找到错误提示的注册表位置,结果没看到14.0;
刚开始以为是缺少14.0,然后自己手动伪造了14.0的注册表,还是不行;
把VS2012写在重装也不行,郁闷半天
4 解决方案
经过一番折腾终于找到解决方案如下:
确保已完全卸载 Visual Studio 2015(在“控制面板”->“程序”->“程序和功能”中,确保未列出 Visual Studio 2015)
确保计算机上不存在以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersion\4.0
如果在 64 位操作系统上运行,请从注册表的 32 位部分中删除这些项。 为此,请单击“开始”->“运行”,键入“%WinDir%\SysWOW64\regedit.exe”,然后更改注册表。【这一步很关键,一定要把64位注册表的14.0删掉】
结合刚开始的知识点普及,我们知道这个错误主要是因为我们一般对注册表的修改只是针对32位的,而这一次问题出在了64位的regedit.exe上了,下次一定得长记性