如何为LINQPad设置NetFx40_LegacySecurityPolicy?

时间:2016-01-29 15:58:04

标签: c# linqpad

当我使用NotSupportedException中的旧版库时,我收到LINQPad。我发现此异常是由于Code Access Security.NET Framework的弃用。

https://msdn.microsoft.com/en-us/library/ee191568(v=vs.110).aspx

所以我根据MSDN文章将<NetFx40_LegacySecurityPolicy>添加到LINQPad.config文件,但它仍会导致Exception。将配置元素添加到LINQPad.UserQuery.exe.config对我有帮助,但似乎在启动LINQPad时重新生成。

是否有其他方法可以为LINQPad添加配置元素?

(为什么这个元素不适用于LINQPad.config ...)

示例(导致相同Exception):

// Add reference for System.Security.dll and import namespace System.Security.
new HostSecurityManager().DomainPolicy

2 个答案:

答案 0 :(得分:1)

LINQPad runs used to run each query in a new AppDomain and not in a new Process以来,我认为“受限制的”&#39;程序是LINQPad.exe本身: (我不知道使用了哪个版本的LINQPad,这是一个可能的解决方案。)

LINQPad AppDomains

LINQPadLINQPad.exe.config加载自己的配置,尝试向其添加所需的配置,而不是LINQPad.config文件 - 这是查询配置文件。

另外,请确保您拥有right configuration hierarchy

<configuration>
   <runtime>
      <NetFx40_LegacySecurityPolicy enabled="true|false"/>
   </runtime>
</configuration>

答案 1 :(得分:1)

NetFx40_LegacySecurityPolicy很不寻常,因为它必须来自进程的配置文件,而不是AppDomain。

如果在LINQPad中禁用进程隔离,则解决方法是将设置放入LINQPad.exe.config而不是LINQPad.config

此解决方法不适用于启用进程隔离,但这将在LINQPad更新(v5.05.04)中解决。测试版将很快发布。