2012-07-09 101 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位+