你好,我在运行一个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也不产生任何作用。知道这可能是什么吗?
史考特
呼啦一阵风
紫衣仙女