如何解决 Nant 0.91 的配置错误? [英] How do I resolve configuration errors with Nant 0.91?

查看:16
本文介绍了如何解决 Nant 0.91 的配置错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下载 Nant 0.91 后,我收到了一些与配置或安全相关的相当神秘的配置错误(见下文).

After downloading Nant 0.91, I'm getting some rather cryptic configuration errors relating to configuration or security (see below).

我正在尝试将我的 Nant 可执行文件从 0.86 升级到 0.91.

I'm trying to simply upgrade my Nant executables from 0.86 to 0.91.

在 Windows 7 机器上构建时如何解决以下问题?

How can I resolve the issues below when building on a Windows 7 machine?

log4net:ERROR XmlConfiguratorAttribute: 异常获取 ConfigurationFileLocation.当未设置 ConfigFile 和 ConfigFileExtension 属性时,必须能够解析 ConfigurationFileLocation.System.Security.SecurityException:请求System.Security.Permissions.FileIOPermission,mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089"类型的权限失败.在 System.Security.CodeAccessSecurityEngine.Check(对象需求,StackCrawlMark& stackMark,布尔 isPermSet)在 System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission 上限,StackCrawlMark& stackMark)在 System.Security.CodeAccessPermission.Demand()在 System.AppDomainSetup.VerifyDir(字符串目录,布尔规范化)在 log4net.Util.SystemInfo.get_ConfigurationFileLocation()在 log4net.Config.XmlConfiguratorAttribute.ConfigureFromFile(Assembly sourceAssembly, ILoggerRepository targetRepository)

log4net:ERROR XmlConfiguratorAttribute: Exception getting ConfigurationFileLocation. Must be able to resolve ConfigurationFileLocation when ConfigFile and ConfigFileExtension properties are not set. System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) at System.Security.CodeAccessPermission.Demand() at System.AppDomainSetup.VerifyDir(String dir, Boolean normalize) at log4net.Util.SystemInfo.get_ConfigurationFileLocation() at log4net.Config.XmlConfiguratorAttribute.ConfigureFromFile(Assembly sourceAssembly, ILoggerRepository targetRepository)

失败的操作是:要求第一个失败的权限类型是:System.Security.Permissions.FileIOPermission失败的程序集区域是:互联网

The action that failed was: Demand The type of the first permission that failed was: System.Security.Permissions.FileIOPermission The Zone of the assembly that failed was: Internet

未处理的异常:System.Security.SecurityException:在尝试访问配置部分nant"时请求 ConfigurationPermission 失败.要允许所有调用者访问此部分的数据,请在声明此部分的配置文件中将部分属性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,布尔 isPermSet)在 System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission 上限,StackCrawlMark& stackMark)在 System.Security.CodeAccessPermission.Demand()在 System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(字符串 configKey,布尔 requirePermission,布尔 isTrustedWithoutAptca)--- 内部异常堆栈跟踪结束 ---在 System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(字符串 configKey,布尔 requirePermission,布尔 isTrustedWithoutAptca)在 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(字符串 configKey,布尔 getLkg,布尔 checkPermission,布尔 getRuntimeObject,布尔 requestIsHere,Object& 结果,Object&resultRuntimeObject)在 System.Configuration.BaseConfigurationRecord.GetSection(字符串 configKey)在 System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(字符串 sectionName)在 System.Configuration.ConfigurationManager.GetSection(字符串 sectionName)在 NAnt.Console.ConsoleStub.Framework.GetRuntimeFramework()在 NAnt.Console.ConsoleStub.Main(String[] args

Unhandled Exception: System.Security.SecurityException: Request for ConfigurationPermission failed while attempting to access configuration section 'nant'. To allow all callers to access the data for this section, set section attribute 'requirePermission' equal 'false' in the configuration file where this section is declared. ---> System.Security.SecurityException: Request for the permission of type 'System.Configuration.ConfigurationPermission, System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' failed. at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) at System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) at System.Security.CodeAccessPermission.Demand() at System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey, Boolean requirePermission, Boolean isTrustedWithoutAptca) --- End of inner exception stack trace --- at System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey, Boolean requirePermission, Boolean isTrustedWithoutAptca) at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject) at System.Configuration.BaseConfigurationRecord.GetSection(String configKey) at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName) at System.Configuration.ConfigurationManager.GetSection(String sectionName) at NAnt.Console.ConsoleStub.Framework.GetRuntimeFramework() at NAnt.Console.ConsoleStub.Main(String[] args

(答案即将发布,作为问题发布以供参考......)

(Answer is forthcoming, posting as a question for reference....)

推荐答案

奇怪的是,这与如何从 Nant 0.91 存档中提取可执行文件有关.(在我真正尝试之前,这对我来说毫无意义,但它确实有效......)

Oddly enough, this is related to how the executables are extracted from the Nant 0.91 archive. (This made no sense to me until I actually tried it, but it does actually work...)

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

我发现问题与 Windows 7 安全相关,因为下载的 NAnt 0.91 zip 文件需要执行额外的安全相关配置:在解压之前,必须右键单击 zip 文件,选择属性,然后在常规选项卡,单击标记为取消阻止的按钮,然后单击属性窗口上的确定.现在,将文件解压到您想要的位置,确保它在系统路径上,打开一个新的命令行,NAnt 应该会成功运行.

I found that the problem was Windows 7 security related in that the downloaded NAnt 0.91 zip file needed additional security related configuration to be performed: before extracting, one must right click on the zip file, select Properties and under the General tab, click the button labelled Unblock, then click OK on the Properties window. Now, extract the file to your desired location, ensure it is on the system path, open a new command line and NAnt should run successfully.

这篇关于如何解决 Nant 0.91 的配置错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆