缺少 MSBuild“sgen.exe”
使用 MSBuild 時出現以下錯誤。我得到的錯誤是:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2769,5): error MSB3086: Task could not find “sgen.exe” using the SdkToolsPath "" or the registry key “HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86”。確保設置了 SdkToolsPath 並且該工具存在於 SdkToolsPath 下的正確處理器特定位置,並且安裝了 Microsoft Windows SDK
到目前為止,我已經完成了以下工作:
1) 從這里安裝 Windows SDK v8
2)我確認系統資料庫中存在系統資料庫項“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86”
- 上述 2 中的系統資料庫項指向路徑“C:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools”,我已確認該路徑存在並且 sgen.exe 位於那個目錄
4)我也做了一些自己的研究並遇到了這個 SO 文章,但答案涉及在伺服器本身上安裝 Visual Studio,這對我來說不是一個選擇。但是我確實想指出,我有另一個具有完全相同設置的建構伺服器並且它工作正常,所以我的臨時工作是在該伺服器上建構它,然後將建構複製過來。
任何人都知道問題可能是什麼?
我終於能夠解決它。解決步驟:
- 通過程序和功能解除安裝 windows sdk 8。
2) 從這里安裝 windows sdk 8.1 。
3)編輯系統資料庫項
- SDK40工具路徑
- SDK35工具路徑
在下面
HKLM\SOFTWARE\Wow6432Node\MSBuild\ToolsVersions\11.0
到
$(系統資料庫:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-NetFx40Tools-x86@InstallationFolder)
和系統資料庫鍵
- 框架SDK根
- WindowsSDK80路徑
到
$(系統資料庫:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.1@InstallationFolder)
如果他們遇到同樣的問題,希望這可能會幫助其他人。