Comment résoudre les erreurs de configuration avec Nant 0.91?

106

Après avoir téléchargé Nant 0.91, j'obtiens des erreurs de configuration plutôt cryptiques liées à la configuration ou à la sécurité (voir ci-dessous).

J'essaie simplement de mettre à niveau mes exécutables Nant de 0,86 à 0,91.

Comment puis-je résoudre les problèmes ci-dessous lors de la création sur une machine Windows 7?

log4net: ERREUR XmlConfiguratorAttribute: exception lors de l'obtention de ConfigurationFileLocation. Doit être en mesure de résoudre ConfigurationFileLocation lorsque les propriétés ConfigFile et ConfigFileExtension ne sont pas définies. System.Security.SecurityException: la demande d'autorisation de type 'System.Security.Permissions.FileIOPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' a échoué. à System.Security.CodeAccessSecurityEngine.Check (Object demand, StackCrawlMark & ​​stackMark, Boolean isPermSet) à System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark, Boolean isPermSet) à System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark & ​​stackMark) à System.Security.CodeAccessPermain (Cap) String dir, Boolean normalize) à log4net.Util.SystemInfo.get_ConfigurationFileLocation () à log4net.Config.

L'action qui a échoué était: Demande Le type de la première autorisation qui a échoué était: System.Security.Permissions.FileIOPermission La zone de l'assembly qui a échoué était: Internet

Exception non gérée: System.Security.SecurityException: la demande de ConfigurationPermission a échoué lors de la tentative d'accès à la section de configuration «nant». Pour permettre à tous les appelants d'accéder aux données de cette section, définissez l'attribut de section 'requirePermission' égal à 'false' dans le fichier de configuration où cette section est déclarée. ---> System.Security.SecurityException: la demande d'autorisation de type 'System.Configuration.ConfigurationPermission, System.Configuration, Version = 4.0.0.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a' a échoué. à System.Security.CodeAccessSecurityEngine.Check (Object demand, StackCrawlMark & ​​stackMark, Boolean isPermSet) à System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap, StackCrawlMark et stackMark) à System.Security.CodeAccessPermark) à System.Security.CodeAccessPermark

(La réponse est à venir, postée comme question de référence ....)

Peter Bernier
la source
toujours le même problème avec NAnt 0.92 et Windows 8.1 . Mais c'était prévisible. Comme on peut le trouver dans un autre commentaire également pour Windows 10 , y a-t-il une autre balise à ajouter?
Wolf

Réponses:

205

Curieusement, cela est lié à la façon dont les exécutables sont extraits de l'archive Nant 0.91. (Cela n'avait aucun sens pour moi jusqu'à ce que je l'ai essayé, mais cela fonctionne réellement ...)

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

J'ai trouvé que le problème était lié à la sécurité de Windows 7 en ce que le fichier zip NAnt 0.91 téléchargé nécessitait une configuration supplémentaire liée à la sécurité: avant l'extraction, il faut faire un clic droit sur le fichier zip, sélectionnez Propriétés et sous l'onglet Général, cliquez sur le bouton libellé Débloquer, puis cliquez sur OK dans la fenêtre Propriétés. Maintenant, extrayez le fichier à l'emplacement souhaité , assurez-vous qu'il se trouve sur le chemin du système, ouvrez une nouvelle ligne de commande et NAnt devrait s'exécuter avec succès.

Peter Bernier
la source
1
En outre, enregistrez le fichier .zip téléchargé sur votre ordinateur local, puis débloquez-le, suivi de l'extraction. J'ai essayé cela alors que le fichier était enregistré sur un partage réseau et que Windows paniquait comme s'il n'était pas débloqué. #ProTip
Brett Rigby
2
Au cas où quelqu'un se demanderait, cette solution fonctionne également pour Windows 10
Sc0tTy
2
Autre (traduction) bizarrerie: en allemand, le bouton est étiquetéZulassen
Wolf
12

J'ai eu le même problème, mais mon onglet Propriétés / Général ne contenait pas de bouton de déblocage. (Je ne sais pas pourquoi; il semble que cela soit potentiellement lié au fait que j'exécute dans la machine virtuelle VMWare Fusion.)

Ce problème semblait disparaître si j'utilisais autre chose que l'extracteur ZIP intégré de Windows pour extraire le fichier. Par exemple, j'ai utilisé 7-Zip pour extraire l'archive et tout a bien fonctionné.

Mike
la source
Absolument! Mais même si vous utilisez principalement 7-Zip pour compresser, il est parfois déroutant de cliquer sur le bon élément du menu contextuel lors de la décompression, car l'option intégrée est tellement attrayante ;)
Wolf
1

Voici comment débloquer tous les fichiers de manière récursive après coup avec PowerShell. Bizarrement, unblock-file ne vérifie que la propriété pspath sur le tube.

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

Bien sûr, vous pouvez le faire de cette façon, sans savoir lequel est bloqué ou non:

get-childitem -recurse c:\nant-92 | unblock-file
js2010
la source