如何使用Nant 0.91解决配置错误?


106

下载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(对象需求,StackCrawlMark&stackMark,布尔isPermSet)在System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap,StackCrawlMark&stackMark)在System.Security.CodeAccessPermission.Demand()在System.AppDomainSetup.VerifyDir(在log4net.Config的log4net.Util.SystemInfo.get_ConfigurationFileLocation()处的字符串dir,布尔值归一化)。

失败的操作是:需求失败的第一个权限的类型是:System.Security.Permissions.FileIOPermission失败的程序集区域是: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 cap,StackCrawlMark&stackMark)在System.Security.CodeAccessPermission。

(即将发布答案,以供参考。)


NAnt 0.92Windows 8.1仍然存在相同的问题。但这是可以预期的。在Windows 10的另一个注释中也可以找到-是否要添加另一个标签?

Answers:


205

奇怪的是,这与如何从Nant 0.91存档中提取可执行文件有关。(在我实际尝试之前,这对我没有意义,但实际上确实有效...)

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

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


1
另外,将下载的.zip文件保存到本地计算机,然后取消阻止,然后解压缩。在文件保存在网络共享上并且Windows好像没有被阻止的情况下,我尝试了此操作。#ProTip
Brett Rigby

2
如果有人想知道该解决方案是否也适用于Windows 10
Sc0tTy 2015年

2
另一个(翻译)奇怪的地方:德语中按钮的标签是Zulassen
Wolf

12

我遇到了同样的问题,但是我的“属性/常规”选项卡没有包含取消阻止按钮。(我不确定为什么;似乎这可能与我在VMWare Fusion虚拟机中运行这一事实有关。)

如果我使用Windows内置的ZIP提取程序以外的方法来提取文件,则该问题似乎会消失。例如,我使用7-Zip提取了档案文件,一切正常。


绝对!但是,即使您通常使用7-Zip进行压缩,在进行解压缩时,有时也无法正确点击上下文菜单项,因为内置选项是如此吸引人;)
Wolf

1

这是在使用powershell事实后递归解锁所有文件的方法。奇怪的是,unblock-file仅检查管道上的pspath属性。

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

当然,您可以通过这种方式进行操作,而无需知道哪个被阻止:

get-childitem -recurse c:\nant-92 | unblock-file
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.