Dot-Net

缺少 MSBuild“sgen.exe”

  • February 5, 2018

使用 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”

  1. 上述 2 中的系統資料庫項指向路徑“C:\Program Files\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools”,我已確認該路徑存在並且 sgen.exe 位於那個目錄

4)我也做了一些自己的研究並遇到了這個 SO 文章,但答案涉及在伺服器本身上安裝 Visual Studio,這對我來說不是一個選擇。但是我確實想指出,我有另一個具有完全相同設置的建構伺服器並且它工作正常,所以我的臨時工作是在該伺服器上建構它,然後將建構複製過來。

任何人都知道問題可能是什麼?

我終於能夠解決它。解決步驟:

  1. 通過程序和功能解除安裝 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)

如果他們遇到同樣的問題,希望這可能會幫助其他人。

引用自:https://stackoverflow.com/questions/34045326