运行MSBuild:无法读取SDKToolsPath?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

你好,我在运行一个Nant脚本时遇到了一些问题,这个脚本用于在VS 2008及其相关工具编译时正确地构建基于.NET 2.0的网站。最近,我将所有项目/解决方案文件升级到VS 2010,现在我的构建失败了,出现了以下错误:

[exec] C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(2249,9): error MSB3086: Task could not find "sgen.exe" using the S dkToolsPath "" or the registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A". Make sure the SdkToolsPath is set and the tool exists in the correct processor specific location under the SdkToolsPath and that the Microsoft Windows SDK is installed

现在,我确实在构建服务器上安装了WindowsSDK的早期版本(.NET 3.5),并安装了完整的.NET 4.0框架,但我还没有遇到.NET 4.0特定版本的WindowsSDK。

经过一些实验和研究,我终于设置了一个新的环境变量“SDKToolsPath”,并将其指向我的Windows6.0SDK文件夹中的sgen.exe。这产生了同样的错误,但它让我注意到,即使设置了SDKToolsPath环境变量(确认我可以在命令行“回显”它的值),但错误消息似乎表明它没有被读取(注意空引号)。

我发现的大多数信息都是特定于.NET 3.5(或更早版本)的。目前还没有多少相关的4.0。搜索错误代码MSB 3086也不会产生任何有用的结果。知道这可能是什么吗?

提问于
用户回答回答于

在我们的构建服务器上安装VS 2010来解决这个问题。据我所见,MSDN上任何地方都没有7.0A版本的WindowsSDK。但是,安装VS 2010似乎要安装它,在ProgramFiles\MicrosoftSDKS\Windows中创建一个7.0A的正则键和一个7.0A文件夹。

用户回答回答于

我已经在我的构建服务器上安装了这个。然后通过WindowsSDK7.1命令提示符(Start=>All Program=>MicrosoftWindowsSDK7.1),我将SDK的默认版本设置为7.1。

步骤:

cd Setup

WindowsSdkVer.exe -version:v7.1

扫码关注云+社区