2012-07-09 52 views
5

环境:NANT 0.92 SDK 7未发现

的Windows 2008 R2 64位安装在ÇSDK:\ Program Files文件

框架安装在C(x86)的\微软的SDK \的Windows \ V7.1 :\ 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

如果注册表键不存在,是不是更加的SDK安装问题,而不是恶性的? – 2012-07-10 15:57:13

+0

在64位机器上,我的7.1 SDK安装在:C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1(不在Program Files(x86))可能是这个问题? – 2012-08-27 12:15:45

回答

1

最简单的解决方案是将密钥添加到注册表中。

对于我自己,注册表项有些不同:在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework中设置sdkInstallRootv2.0 = C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A。

之后,南特按预期编好。

0

昨天我遇到了这个问题。另一个解决方法是将NAnt可执行文件标记为32位。

  1. 打开开发者命令提示符
  2. 更改到包含您的恶性可执行文件的目录。
  3. 运行以下命令:corflags NAnt.exe位/ 32位+