Come risolvo gli errori di configurazione con Nant 0.91?


106

Dopo aver scaricato Nant 0.91, ricevo alcuni errori di configurazione piuttosto criptici relativi alla configurazione o alla sicurezza (vedi sotto).

Sto cercando di aggiornare semplicemente i miei eseguibili Nant da 0,86 a 0,91.

Come posso risolvere i seguenti problemi durante la compilazione su una macchina Windows 7?

log4net: ERRORE XmlConfiguratorAttribute: eccezione durante il recupero di ConfigurationFileLocation. Deve essere in grado di risolvere ConfigurationFileLocation quando le proprietà ConfigFile e ConfigFileExtension non sono impostate. System.Security.SecurityException: richiesta di autorizzazione di tipo "System.Security.Permissions.FileIOPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089" non riuscita. at System.Security.CodeAccessSecurityEngine.Check (Object demand, StackCrawlMark & ​​stackMark, Boolean isPermSet) at System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark) at System.Security.CodeAccessPermission.Demission.Demandup (CodeAccessPermission cap, StackCrawlMark e stackMark) String dir, Boolean normalize) in log4net.Util.SystemInfo.get_ConfigurationFileLocation () in log4net.Config.

L'azione che non è riuscita è stata: Richiesta Il tipo della prima autorizzazione che ha avuto esito negativo è stata: System.Security.Permissions.FileIOPermission La zona dell'assembly che ha avuto esito negativo era: Internet

Eccezione non gestita: System.Security.SecurityException: richiesta di ConfigurationPermission non riuscita durante il tentativo di accesso alla sezione di configurazione "nant". Per consentire a tutti i chiamanti di accedere ai dati per questa sezione, impostare l'attributo di sezione "requirePermission" uguale a "false" nel file di configurazione in cui viene dichiarata questa sezione. ---> System.Security.SecurityException: richiesta di autorizzazione di tipo "System.Configuration.ConfigurationPermission, System.Configuration, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" non riuscita. at System.Security.CodeAccessSecurityEngine.Check (Object demand, StackCrawlMark & ​​stackMark, Boolean isPermSet) at System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark) at System.Security.CodeAccessPermission.

(La risposta è imminente, posta come domanda di riferimento ....)


ancora lo stesso problema con NAnt 0.92 e Windows 8.1 . Ma questo era prevedibile. Come si può trovare in un altro commento anche per Windows 10 - c'è un altro tag da aggiungere?
Wolf

Risposte:


205

Stranamente, questo è correlato al modo in cui gli eseguibili vengono estratti dall'archivio Nant 0.91. (Questo non aveva senso per me finché non l'ho provato, ma funziona davvero ...)

Fonte: http://surfjungle.blogspot.com/2011/11/tip-running-nant-091-on-windows-7.html

Ho scoperto che il problema era correlato alla sicurezza di Windows 7 in quanto il file zip NAnt 0.91 scaricato necessitava di una configurazione aggiuntiva relativa alla sicurezza per essere eseguito: prima di estrarre, è necessario fare clic con il pulsante destro del mouse sul file zip, selezionare Proprietà e nella scheda Generale, fare clic sul pulsante etichettato Sblocca, quindi fare clic su OK nella finestra Proprietà. Ora, estrai il file nella posizione desiderata , assicurati che sia sul percorso di sistema, apri una nuova riga di comando e NAnt dovrebbe essere eseguito correttamente.


1
Inoltre, salva il file .zip scaricato sul tuo computer locale, quindi Sbloccalo, seguito da Estrazione. Ho provato questo mentre il file è stato salvato su una condivisione di rete e Windows è andato fuori di testa come se non fosse stato sbloccato. #ProTip
Brett Rigby

2
Nel caso qualcuno si stesse chiedendo che questa soluzione
funzioni

2
Un'altra stranezza (traduzione): in tedesco il pulsante è etichettatoZulassen
Wolf

12

Ho avuto lo stesso problema, tuttavia la mia scheda Proprietà / Generale non conteneva un pulsante di sblocco. (Non sono sicuro del perché; sembra che questo sia potenzialmente correlato al fatto che sto eseguendo all'interno della macchina virtuale VMWare Fusion.)

Questo problema sembrava scomparire se avessi usato qualcosa oltre all'estrattore ZIP integrato di Windows per estrarre il file. Ad esempio, ho usato 7-Zip per estrarre l'archivio e tutto ha funzionato bene.


Assolutamente! Ma anche se usi principalmente 7-Zip per comprimere, a volte è confuso premere la voce del menu contestuale giusto durante la decompressione, perché l'opzione integrata è così attraente ;)
Wolf

1

Ecco come sbloccare ricorsivamente tutti i file dopo il fatto con PowerShell. Stranamente, unblock-file controlla solo la proprietà pspath sulla pipe.

get-childitem -recurse c:\nant-92 | 
get-item -stream zone.identifier -erroraction silentlycontinue | 
foreach { $_.pspath = $_.pspath -replace ':zone.identifier'; $_ } | 
unblock-file

Certo che potresti farlo in questo modo, senza sapere quale è stato bloccato o meno:

get-childitem -recurse c:\nant-92 | unblock-file
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.