环境:
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()
Run Code Online (Sandbox Code Playgroud)
在查看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>
Run Code Online (Sandbox Code Playgroud)
密钥在注册表中不存在,我们的SDK版本也不匹配minwinsdkver ="v7.0A"
任何人遇到这个问题并找到了有效的解决方法?
最简单的解决方案是将密钥添加到注册表中。
对于我自己来说,注册表项略有不同:在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework 设置 sdkInstallRootv2.0=C:\Program Files\Microsoft SDKs\Windows\v7.0A。
之后,Nant 按预期编译良好。
| 归档时间: |
|
| 查看次数: |
1982 次 |
| 最近记录: |