环境:
Windows 2008 R2 64Bit SDK安装在 C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.1
安装在 C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
的框架尝试运行Nant来编译一些.NET 4类,我们正在努力 以下信息。
The SDK for the 'net-4.0' framework is not available or not configured.:
NAnt.Core.BuildException: The SDK for the 'net-4.0'
framework is not available or not configured.
at NAnt.Core.Tasks.ExternalProgramBase.DetermineFilePath()
at NAnt.Core.Tasks.ExternalProgramBase.get_ProgramFileName()
at
NAnt.Core.Tasks.ExternalProgramBase.PrepareProcess(Process process)
at NAnt.Core.Tasks.ExternalProgramBase.StartProcess()
at NAnt.Core.Tasks.ExternalProgramBase.ExecuteTask()
at NAnt.Core.Task.Execute()
at NAnt.Core.Target.Execute()
at NAnt.Core.Project.Execute(String targetName, Boolean
forceDependencies)
at NAnt.Core.Project.Execute()
at NAnt.Core.Project.Run()
在查看NANt.exe.config时,它看起来似乎是 注册表以查找SDK的适用路径。
<project>
<readregistry
property="installRoot"
key="SOFTWARE\Microsoft\.NETFramework\InstallRoot"
hive="LocalMachine" />
<locatesdk property="sdkInstallRoot"
minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999"
failonerror="false" />
</project>
密钥在注册表中不存在,我们的SDK版本也不匹配minwinsdkver =“v7.0A”
任何人遇到此问题并找到了有效的解决方法吗?
答案 0 :(得分:1)
最简单的解决方案是将密钥添加到注册表中。
对于我自己,注册表项略有不同:在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework设置sdkInstallRootv2.0 = C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A。
在此之后Nant按预期编译好了。
答案 1 :(得分:0)
昨天我遇到了这个问题。另一种解决方法是将NAnt可执行文件标记为32位。