.net MSBuild";sgen.exe“;不见了

.net MSBuild";sgen.exe“;不见了,.net,windows,visual-studio-2012,msbuild,.net,Windows,Visual Studio 2012,Msbuild,使用MSBuild时出现以下错误。我得到的错误是: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2769,5): 错误MSB3086:任务无法使用SdkToolsPath找到“sgen.exe” “”或注册表项 “HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Microsoft SDK\Windows\v8。 0A\WinSDK-NetFx40Tools-x86

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

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2769,5): 错误MSB3086:任务无法使用SdkToolsPath找到“sgen.exe” “”或注册表项 “HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Microsoft SDK\Windows\v8。 0A\WinSDK-NetFx40Tools-x86”。确保设置了SdkToolsPath,并且 刀具存在于下的正确处理器特定位置 SdkToolsPath,并且已安装Microsoft Windows SDK

到目前为止,我已经做了以下工作:

1) 从安装Windows SDK v8

2) 我确认注册表项“HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Microsoft SDK\Windows\v8.0A\WinSDK-NetFx40Tools-x86”存在于注册表中

3) 上面2中的注册表项指向路径“C:\Program Files\Microsoft SDK\Windows\v8.0A\bin\NETFX 4.0 Tools”,我已确认该路径存在,并且sgen.exe位于该目录中

4) 我也做了一些自己的研究,但答案涉及在服务器上安装VisualStudio,这对我来说不是一个选项。但是我想指出的是,我有另一个构建服务器,它的设置完全相同,并且运行良好,所以我的临时工作是在该服务器上构建它,然后复制构建


有人知道问题可能是什么吗?

我终于解决了。解决问题的步骤:

1) 通过程序和功能卸载windows sdk 8

2) 从安装windows sdk 8.1

3) 编辑注册表项

  • SDK40ToolsPath
  • SDK35ToolsPath

HKLM\SOFTWARE\Wow6432Node\MSBuild\ToolsVersions\11.0

$(注册表:HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Microsoft SDK\Windows\v8.1A\WinSDK-NetFx40Tools-x86@InstallationFolder)

和注册表键

  • 框架dkroot
  • WindowsSDK80Path

$(注册表:HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Microsoft SDK\Windows\v8。1@InstallationFolder)


希望这能在将来帮助其他人,如果他们遇到同样的问题。

这个答案对我不适用。 我已经有了Windows 8.1 SDK,但没有版本8。我不得不下载包含.NETFramework4.5SDK的版本8。 .Net Framework 4.5 SDK(随Windows 8 SDK提供)和4.6 SDK(随Visual Studio 2015提供)。我有VS 2015

所有SDK都可以在上单独下载


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

我遇到了相同的错误,
sgen.exe在使用MSBuild时丢失。我不必更改注册表值。我确保MSBuild命令使用的是我安装的版本。我的电脑上安装了Visual Studio 2015和2017


在我的例子中,它是
C:\ProgramFiles(x86)\MSBuild\14.0\bin
。因此,我将路径设置为该值,当我使用新的路径集运行批处理文件时,它已成功编译。

谢谢John Paul。在我的机器上,这是在HKEY_LOCAL_machine\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\4.0\11.0、HKEY_LOCAL_machine\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\14.0\11.0和HKEY_LOCAL_machine\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\14.0\14.0下进行的,我将SDK40ToolsPath设置为C:\Program Files(x86)\Microsoft SDK\Windows\v8.1A\bin\NETFX 4.5.1工具。我只是将\toolsversions\4.0\键值复制到\toolsversions\4.0\11.0,但这个答案为我澄清了问题。。。tksI尚未找到建议的注册表路径,但找到了一个替代路径,该路径似乎具有相同的预期值,但位于v12文件夹中,而不是v11。这是同一件事吗?是打字错误吗?HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\12.0\11.0I放弃了SDK 10。它是种类8.1 SDK,其他在10 SDK之后被忽略。但是谢谢,你给了我一个希望)我已经用一个cmd包装器解决了这个问题