2012-07-09 61 views
5

Ambiente:NANT 0.92 SDK 7 non trovata

Windows 2008 R2 64bit SDK installato presso C: \ Program Files (x86) Microsoft SDK \ Windows \ v7.1 \

Framework installato in C : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319

Provare a eseguire Nant per compilare alcune classi .NET 4 e riceviamo il messaggio .

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() 

Guardando alla NANt.exe.config sembrerebbe che sembra al Registro di sistema per trovare il percorso applicabile per l'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> 

La chiave non esiste nel Registro di sistema né la nostra versione SDK corrisponde al minwinsdkver = "v7.0A"

Chiunque incorrere in questo problema e trovato una valida work-around?

+0

Se le chiavi di registro non ci sono, non è che più di un problema di installazione SDK piuttosto che NAnt? –

+0

Su una macchina a 64 bit, il mio SDK 7.1 è installato su: C: \ Programmi \ Microsoft SDK \ Windows \ v7.1 (non su Program Files (x86)) forse questo è il problema? –

risposta

1

La soluzione più semplice è aggiungere la chiave al registro.

Per me la voce del Registro di sistema era leggermente diversa: in HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework set sdkInstallRootv2.0 = C: \ Programmi \ Microsoft SDK \ Windows \ v7.0A.

Dopo questo Nant ha compilato la multa come previsto.

0

Mi sono imbattuto in questo problema ieri. Un'altra soluzione è contrassegnare l'eseguibile NAnt come 32 bit.

  1. Aprire un comando Developer Prompt
  2. Passare alla directory che contiene il file eseguibile Nant.
  3. eseguire il seguente comando: corflags NAnt.exe/32bit +