MSBuild“sgen.exe”丢失

使用MSBuild时出现以下错误。 我得到的错误是:

C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(2769,5):错误MSB3086:任务使用SdkToolsPath“”或registry项“HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8.0A \ WinSDK-NetFx40Tools-x86“。 确保设置了SdkToolsPath,并将该工具存在于SdkToolsPath下正确的处理器特定位置,并且安装了Microsoft Windows SDK

到目前为止我已经完成了以下工作:

1)从这里安装Windows SDK v8

2)我确认在registry中存在registry项“HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8.0A \ WinSDK-NetFx40Tools-x86”

3)从上面的registry项2指向path“C:\ Program Files \ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0工具”,我已经确认path存在,并且sgen.exe位于那个目录

4)我也做了一些我自己的研究,碰到这个SOpost,但答案涉及到在服务器本身安装Visual Studio,这不是我的select。 不过,我想指出,我有另一个生成服务器完全相同的设置,它的工作正常,所以我的临时工作是在该服务器上构build它,然后复制生成。

任何人都有什么问题可能是什么洞察力?

我终于能够解决它。 解决步骤:

1)通过程序和功能卸载Windows SDK 8。

2)从这里安装Windows SDK 8.1。

3)编辑注册表项

  • SDK40ToolsPath
  • SDK35ToolsPath

HKLM \ SOFTWARE \ Wow6432Node \的MSBuild \ ToolsVersions \ 11.0

$(注册表:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8.1A \ WinSDK-NetFx40Tools-x86 @ InstallationFolder)

和注册码

  • FrameworkSDKRoot
  • WindowsSDK80Path

$(注册表:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8.1@InstallationFolder)

如果遇到同样的问题,希望这可以帮助别人。

这个答案对我不起作用。 我已经有了Windows 8.1 SDK,但没有版本8.我不得不下载哪个容器的.Net Framework 4.5 SDK版本8。 .Net Framework 4.5 SDK(附带Windows 8 SDK)和4.6 SDK(附带Visual Studio 2015)。 我有VS 2015。

所有的SDK都可以在https://msdn.microsoft.com/en-us/library/5a4x27ek(v=vs.110).aspx下单独下载。

我下载了4.5 SDK并安装了它(注意没有Application Verifier功能,因为这会导致安装错误)。 重新启动后,我的构建工作正常。