我们正在使用ClickOnce部署的WPF应用程序,该应用程序旨在在.Net Framework v3.5上运行。该应用程序不适用于Windows 8或10,如果安装了较新版本的.Net Framework,则无法运行。
我们收到错误消息:
此方法明确使用CAS策略,该策略已被废弃 .NET Framework。为了使CAS策略兼容 原因,请使用NetFx40_LegacySecurityPolicy配置 开关。请参阅http://go.microsoft.com/fwlink/?LinkID=155570了解 更多信息。
我无权访问源代码或编辑Web服务器上的ClickOnce文件。我需要一个解决方案,可以使应用程序在我们公司的计算机上运行,而无需在Web服务器或代码中进行更改。
答案 0 :(得分:2)
link in the error message为您提供答案:
兼容性:使用CAS策略旧版选项
配置元素可以让你 指定进程或库使用旧CAS策略。当你 启用此元素,策略和证据重载将起作用 他们在以前版本的框架中做过。
<configuration>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
</configuration>
因此,要重新启用已弃用的代码,请将<NetFx40_LegacySecurityPolicy enabled="true"/>
元素添加到YourApp.exe.config
。
如果您使用的是ClickOnce,则可以add the setting to machine.config
代替。对machine.config
的编辑不会被推荐,因为它们可能具有系统范围的运行时或安全性后果,如果有其他选项可用,则不应尝试编辑,并且永远不会进行测试。
或者,如果您想在.Net 3.5(在CLR的内部版本v2.0.50727
下运行整个应用程序以及一些额外的库),您可以以相同的方式指定<supportedRuntime>
。对于通过ClickOnce部署的应用,这不是一个选项。
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>