使用MSBuild时出现以下错误。我得到的错误是:
C:\的Windows \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets(2769,5): 错误MSB3086:任务无法使用SdkToolsPath找到“sgen.exe” “”或注册表项 “HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8。 0A \ WinSDK-NetFx40Tools-x86“。确保已设置SdkToolsPath并且 工具exi sts在正确的处理器特定位置下 SdkToolsPath和Microsoft Windows SDK已安装
到目前为止,我已完成以下工作:
1)从here
安装Windows SDK v82)我确认注册表中存在注册表项“HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8.0 \ WinSDK-NetFx40Tools-x86”
3)上面2中的注册表项指向路径“C:\ Program Files \ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools”,我已确认路径存在且sgen.exe位于该目录
4)我也做了一些自己的研究并遇到this SO post,但答案是在服务器上安装visual studio,这对我来说不是一个选择。但是,我想指出我有另一个构建服务器具有完全相同的设置,并且它工作正常,所以我的临时工作是在该服务器上构建它,然后复制构建。
任何人都对问题可能有什么了解?
答案 0 :(得分:8)
我终于能够解决它了。解决的步骤:
1)通过程序和功能卸载windows sdk 8。
2)从here安装Windows sdk 8.1。
3)编辑注册表项
HKLM \ SOFTWARE \ Wow6432Node \的MSBuild \ ToolsVersions \ 11.0
到
$(注册表:HKEY_LOCAL_MACHINE \ SOFTWARE \微软\微软 的SDK \的Windows \ v8.1A \ WinSDK-NetFx40Tools 86 @ InstallationFolder)
和注册码
到
$(注册表:HKEY_LOCAL_MACHINE \ SOFTWARE \微软\微软 的SDK \的Windows \ v8.1@InstallationFolder)
希望如果他们遇到同样的问题,这可能在将来帮助其他人。
答案 1 :(得分:4)
这个答案对我不起作用。 我已经拥有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功能,因为这会导致安装错误)。重启后,我的构建工作正常。
答案 2 :(得分:2)
我遇到了同样的错误,使用MSBuild时缺少sgen.exe
。我没有必要更改注册表值。我确保MSBuild命令使用的是我安装的版本。我在我的电脑上安装了Visual Studio 2015和2017。
就我而言,它是C:\Program Files (x86)\MSBuild\14.0\bin
。所以我设置了这个值的路径,当我使用新路径集运行我的批处理文件时,它已成功编译。