目錄
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上了,下次一定得長記性