Pet*_*ier 104 nant log4net build windows-7
下载Nant 0.91后,我遇到了一些与配置或安全相关的相当神秘的配置错误(见下文).
我试图简单地将我的Nant可执行文件从0.86升级到0.91.
在Windows 7计算机上构建时,如何解决以下问题?
log4net:ERROR XmlConfiguratorAttribute:获取ConfigurationFileLocation的异常.必须能够在未设置ConfigFile和ConfigFileExtension属性时解析ConfigurationFileLocation.System.Security.SecurityException:请求类型为'System.Security.Permissions.FileIOPermission,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的权限失败.在System.Security.CodeAccessSecurityEngine.Check在System.Security.CodeAccessSecurityEngine.Check(对象的需求,StackCrawlMark&stackMark,布尔isPermSet)(的CodeAccessPermission帽,StackCrawlMark&stackMark)在System.AppDomainSetup.VerifyDir在System.Security.CodeAccessPermission.Demand()( log dir,Boolean normalize)at log4net.Util.SystemInfo.get_ConfigurationFileLocation()at log4net.Config.XmlConfiguratorAttribute.ConfigureFromFile(Assembly sourceAssembly,ILoggerRepository targetRepository)
失败的操作是:Demand失败的第一个权限的类型是:System.Security.Permissions.FileIOPermission失败的程序集区域是:Internet
未处理的异常:System.Security.SecurityException:尝试访问配置节'nant'时,ConfigurationPermission请求失败.要允许所有调用者访问此部分的数据,请在声明此部分的配置文件中将section属性'requirePermission'设置为等于'false'.---> System.Security.SecurityException:请求类型'System.Configuration.ConfigurationPermission,System.Configuration,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的权限失败.在System.Security.CodeAccessSecurityEngine.Check在System.Security.CodeAccessSecurityEngine.Check(对象的需求,StackCrawlMark&stackMark,布尔isPermSet)(的CodeAccessPermission帽,StackCrawlMark&stackMark)在System.Configuration.BaseConfigurationRecord在System.Security.CodeAccessPermission.Demand(). CheckPermissionAllowed(String configKey,Boolean requirePermission,Boolean isTrustedWithoutAptca)---内部异常堆栈跟踪的结束---在System.Configuration.BaseConfigurationRecord.GetSectionRecursive的System.Configuration.BaseConfigurationRecord.CheckPermissionAllowed(String configKey,Boolean requirePermission,Boolean isTrustedWithoutAptca)处.串configKey,布尔getLkg,布尔的checkPermission,布尔getRuntimeObject,布尔requestIsHere,对象&结果,对象&resultRuntimeObject)在System.Configuration.BaseConfigurationRecord.GetSection(串configKey)在System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.位于NAnt.Console.ConsoleStub.Main(String [] args的NAnt.Console.ConsoleStub.Framework.GetRuntimeFramework()的System.Configuration.ConfigurationManager.GetSection(String sectionName)的GetSection(String sectionName)
(答案即将发布,张贴作为参考问题......)
Pet*_*ier 203
奇怪的是,这与从Nant 0.91档案中提取可执行文件的方式有关.(在我真正尝试之前,这对我没有任何意义,但它确实有效......)
资料来源:http://surfjungle.blogspot.com/2011/11/tip-running-nant-091-on-windows-7.html
我发现问题与Windows 7安全相关,因为下载的NAnt 0.91 zip文件需要执行额外的安全相关配置:在解压缩之前,必须右键单击zip文件,选择Properties,然后在General选项卡下,单击按钮标记为Unblock,然后在"属性"窗口中单击"确定".现在,将文件解压缩到所需位置,确保它位于系统路径上,打开新命令行并且NAnt应该成功运行.
Mik*_*ike 11
我有同样的问题,但我的属性/常规选项卡不包含解除阻止按钮.(我不确定为什么;似乎这可能与我在VMWare Fusion虚拟机中运行的事实有关.)
如果我使用Windows内置的ZIP提取器之外的东西来提取文件,这个问题似乎就消失了.例如,我使用7-Zip来提取存档,一切正常.