运行MSBuild无法读取SDKToolsPath

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


[exec] C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets(2249,9):错误MSB3086:任务使用S dkToolsPath“”或注册表找不到“ sgen.exe”键“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v7.0A”。确保已设置SdkToolsPath,并且该工具存在于SdkToolsPath下正确的处理器特定位置,并且已安装Microsoft Windows SDK。


现在,我确实在构建服务器上安装了Windows SDK的早期版本(.Net 3.5),并且安装了完整的.Net 4.0框架,但是我没有在Windows SDK的.Net 4.0特定版本上运行。


经过一番实验和研究,我终于设置了一个新的环境变量“ SDKToolsPath”,并将其指向Windows 6.0 sdk文件夹中sgen.exe的副本。这产生了相同的错误,但是让我注意到,即使设置了SDKToolsPath环境变量IS(确认我可以在命令行中“回显”它并且具有期望的值),该错误消息似乎也表明它是不被读取(请注意用空引号引起来)。


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


史考特


catspeake
浏览 908回答 3
3回答

呼啦一阵风

我不能将Visual Studio放在构建服务器上。SDK v7.0A是随Visual Studio 2010一起安装的SDK(A表示这是VS版本)。从那时起,发布了新版本。适用于Windows 7和.NET Framework AKA v7.1的 Microsoft Windows SDK 。我已经在我的构建服务器上安装了它。然后通过Windows SDK 7.1命令提示符(开始=>所有程序=> Microsoft Windows SDK 7.1),将SDK的默认版本设置为7.1。脚步:cd SetupWindowsSdkVer.exe -version:v7.1编辑以包含LordHits的评论:不需要安装整个SDK。仅安装“ .NET开发/智能和参考程序集”和“ .NET开发/工具”选项就足够了。

紫衣仙女

我最近在我们的构建服务器上遇到了类似的问题。我从其计算机(已安装VS2010)将7.0A文件夹(C:\ Program Files \ Microsoft SDKs \ Windows \ 7.0A)复制到同一位置的生成服务器。创建以下注册表项后:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v7.0A。将InstallationFolder设置为C:\ Program Files \ Microsoft SDKs \ Windows \ 7.0A。如果您对构建服务器上的注册表有何疑问,也可以引用已安装VS2010的计算机上的注册表。
打开App,查看更多内容
随时随地看视频慕课网APP