如何解决Nant 0.91的configuration错误?
在下载Nant 0.91之后,我得到了一些与configuration或安全相关的相当神秘的configuration错误(见下文)。
我试图简单地将我的Nant可执行文件从0.86升级到0.91。
如何在Windows 7机器上构build时解决以下问题?
log4net:错误XmlConfiguratorAttribute:获取ConfigurationFileLocation的exception。 当ConfigFile和ConfigFileExtension属性未设置时,必须能够parsingConfigurationFileLocation。 System.Security.SecurityException:对“System.Security.Permissions.FileIOPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”types权限的请求失败。 在System.Security.CodeAccessPermission.Check(CodeAccessPermission cap,StackCrawlMark&stackMark)上System.Security.CodeAccessSecurityEngine.Check(对象需求,StackCrawlMark&stackMark,布尔isPermSet)System.AppDomainSetup.VerifyDirstring目录,布尔标准化)在log4net.Util.SystemInfo.get_ConfigurationFileLocation()在log4net.Config.XmlConfiguratorAttribute.ConfigureFromFile(程序集源组件,ILoggerRepository targetRepository)
失败的操作是:需求失败的第一个权限的types是:System.Security.Permissions.FileIOPermission失败的程序集的区域是:Internet
未处理的exception:System.Security.SecurityException:尝试访问configuration节'nant'时,请求ConfigurationPermission失败。 要允许所有调用者访问本节的数据,请在声明本节的configuration文件中将节属性'requirePermission'设置为'false'。 —> System.Security.SecurityException:请求“System.Configuration.ConfigurationPermission,System.Configuration,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”types的权限失败。 System.Security.CodeAccessSecurityEngine.Check(对象需求,StackCrawlMark&stackMark,Boolean isPermSet)在System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap,StackCrawlMark&stackMark)在System.Security.CodeAccessPermission.Demand()在System.Configuration.BaseConfigurationRecord。 CheckPermissionAllowed(String configKey,Boolean requirePermission,Boolean isTrustedWithoutAptca)—在System.Configuration.BaseConfigurationRecord.GetSectionRecursive(System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey,Boolean requirePermission,Boolean isTrustedWithoutAptca)在System.Configuration.BaseConfigurationRecord.GetSection(String configKey)System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem中的stringconfigKey,布尔getLkg,布尔checkPermission,布尔getRuntimeObject,布尔requestIsHere,对象和结果,对象和resultRuntimeObject)。 在NAnt.ConsoleSt.Framework.GetRuntimeFramework()NAnt.Console.ConsoleStub.Main(String [] args)上的System.Configuration.ConfigurationManager.GetSection(String sectionName)GetSection(String sectionName)
(答案即将发布,作为参考发布……)
奇怪的是,这与如何从Nant 0.91归档文件中提取可执行文件有关。 (除非我真的尝试过,否则这对我来说没有任何意义,但它确实可行…)
资料来源: http : //surfjungle.blogspot.com/2011/11/tip-running-nant-091-on-windows-7.html
我发现问题是与Windows 7安全相关的是,下载的NAnt 0.91 zip文件需要执行额外的安全相关configuration:在解压缩之前, 必须右键单击zip文件,select“属性”,然后在“常规”选项卡下单击button标记为Unblock,然后在“属性”窗口中单击“确定”。 现在,将文件解压到所需的位置 ,确保它位于系统path中,打开一个新的命令行,NAnt应该成功运行。
我有这个相同的问题,但是我的属性/常规选项卡不包含解锁button。 (我不知道为什么;这似乎与我在VMWare Fusion虚拟机内部运行有关。
这个问题似乎消失了,如果我用Windows内置的ZIP提取器来提取文件。 例如,我使用7-Zip来提取档案,一切正常。