Как разрешить ошибки конфигурации с помощью Nant 0.91?
После загрузки Nant 0.91 я получаю некоторые довольно загадочные ошибки конфигурации, связанные с конфигурацией или безопасностью (см. ниже).
Я пытаюсь просто обновить исполняемые файлы Nant с 0.86 до 0.91.
Как я могу решить следующие проблемы при создании на компьютере под управлением Windows 7?
log4net: ERROR XmlConfiguratorAttribute: исключение, получающее ConfigurationFileLocation. Должна быть разрешена конфигурация ConfigurationFileLocation, если свойства ConfigFile и ConfigFileExtension не установлены. System.Security.SecurityException: запрос на разрешение типа "System.Security.Permissions.FileIOPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089" не выполнен. в System.Security.CodeAccessSecurityEngine.Check(запрос объекта, StackCrawlMark & stackMark, Boolean isPermSet) в System.Security.CodeAccessSecurityEngine.Check(CapAccessPermission cap, StackCrawlMark & stackMark) в System.Security.CodeAccessPermission.Demand() в System.AppDomainSetup.VerifyDir(String dir, Boolean normalize) в log4net.Util.SystemInfo.get_ConfigurationFileLocation() в log4net.Config.XmlConfiguratorAttribute.ConfigureFromFile(сборка сборки сборки, ILoggerRepository targetRepository)
Не удалось выполнить действие: требовать Тип первого недопустимого разрешения: System.Security.Permissions.FileIOPermission Зона сбоя сборки: Интернет
Необработанное исключение: System.Security.SecurityException: запрос ConfigurationPermission не удался при попытке получить доступ к разделу конфигурации "nant". Чтобы разрешить всем вызывающим абонентам доступ к данным для этого раздела, установите атрибут раздела "requirePermission" равным "false" в файле конфигурации, где этот раздел объявлен. --- > System.Security.SecurityException: запрос на разрешение типа "System.Configuration.ConfigurationPermission, System.Configuration, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a" не выполнен. в System.Security.CodeAccessSecurityEngine.Check(запрос объекта, StackCrawlMark & stackMark, Boolean isPermSet) в System.Security.CodeAccessSecurityEngine.Check(CapAccessPermission cap, StackCrawlMark & stackMark) в System.Security.CodeAccessPermission.Demand() в System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey, Boolean requirePermission, Boolean isTrustedWithoutAptca) --- Конец внутренней проверки стека исключений --- в System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey, Boolean requirePermission, Boolean isTrustedWithoutAptca) в System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object & result, Object & resultRuntimeObject) в System.Configuration.BaseConfigurationRecord.GetSection(String configKey) в System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName) в System.Configuration.ConfigurationManager.GetSection(String sectionName) на NAnt.Console.ConsoleStub.Framework.GetRuntimeFramework() на NAnt.Console.ConsoleStub.Main(String [] args
(Ответ ожидается, размещение в качестве вопроса для справки....)
Ответы
Ответ 1
Как ни странно, это связано с тем, как исполняемые файлы извлекаются из архива Nant 0.91. (Это не имело для меня никакого смысла, пока я не попробовал, но он действительно работает...)
Источник: http://surfjungle.blogspot.com/2011/11/tip-running-nant-091-on-windows-7.html
Я обнаружил, что проблема связана с безопасностью Windows 7, связанной с тем, что загруженный zip файл NAnt 0.91 нуждался в дополнительной конфигурации, связанной с безопасностью: перед извлечением нужно щелкнуть правой кнопкой мыши по zip файлу, выбрать "Свойства" и под Вкладка "Общие", нажмите кнопку "Разблокировать", затем нажмите "ОК" в окне "Свойства". Теперь извлеките файл в нужное место, убедитесь, что он находится на системном пути, откройте новую командную строку и NAnt должен успешно работать.
Ответ 2
У меня была такая же проблема, однако на вкладке "Свойства/Общие" не была кнопка разблокировки. (Я не уверен, почему, похоже, что это потенциально связано с тем, что я запускаю виртуальную машину VMWare Fusion.)
Эта проблема, казалось, исчезла, если я использовал что-то помимо Windows-встроенного экстрактора ZIP для извлечения файла. Например, я использовал 7-Zip для извлечения архива, и все работало нормально.