如何为 LINQPad 设置 NetFx40_LegacySecurityPolicy?
How do I set NetFx40_LegacySecurityPolicy for LINQPad?
当我使用来自 LINQPad
的遗留库时,我得到了 NotSupportedException
。我发现此异常是由于 .NET Framework
.
中的 Code Access Security
弃用所致
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
自 LINQPad
runs used to run each query in a new AppDomain
and not in a new Process
以来,我假设 'restricted' 程序本身就是 LINQPad.exe
:
(我不知道使用的是哪个版本的 LINQPad
,所以这是一个可能的解决方案。)
LINQPad
从 LINQPad.exe.config
加载自己的配置,尝试向其中添加所需的配置而不是 LINQPad.config
文件 - 这是查询配置文件。
此外,请确保您有 right configuration hierarchy:
<configuration>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true|false"/>
</runtime>
</configuration>
NetFx40_LegacySecurityPolicy 的不寻常之处在于它必须来自进程的配置文件,而不是 AppDomain。
如果您在 LINQPad 中禁用进程隔离,解决方法是将设置放入 LINQPad.exe.config
而不是 LINQPad.config
。
此变通办法不适用于启用进程隔离,但是这将在 LINQPad 更新 (v5.05.04) 中得到解决。测试版将很快发布。
当我使用来自 LINQPad
的遗留库时,我得到了 NotSupportedException
。我发现此异常是由于 .NET Framework
.
Code Access Security
弃用所致
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
自 LINQPad
runs used to run each query in a new AppDomain
and not in a new Process
以来,我假设 'restricted' 程序本身就是 LINQPad.exe
:
(我不知道使用的是哪个版本的 LINQPad
,所以这是一个可能的解决方案。)
LINQPad
从 LINQPad.exe.config
加载自己的配置,尝试向其中添加所需的配置而不是 LINQPad.config
文件 - 这是查询配置文件。
此外,请确保您有 right configuration hierarchy:
<configuration>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true|false"/>
</runtime>
</configuration>
NetFx40_LegacySecurityPolicy 的不寻常之处在于它必须来自进程的配置文件,而不是 AppDomain。
如果您在 LINQPad 中禁用进程隔离,解决方法是将设置放入 LINQPad.exe.config
而不是 LINQPad.config
。
此变通办法不适用于启用进程隔离,但是这将在 LINQPad 更新 (v5.05.04) 中得到解决。测试版将很快发布。