当我使用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
答案 0 :(得分:1)
自LINQPad
runs used to run each query in a new AppDomain
and not in a new Process
以来,我认为“受限制的”&#39;程序是LINQPad.exe
本身:
(我不知道使用了哪个版本的LINQPad
,这是一个可能的解决方案。)
LINQPad
从LINQPad.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)中解决。测试版将很快发布。