我们正在使用一个ClickOnce部署的WPF应用程序,该应用程序旨在运行在.Net Frameworkv3.5上。该应用程序不适用于Windows 8或10,如果安装了较新版本的.Net框架,则无法工作。
我们收到错误消息:
此方法显式地使用CAS策略,该策略已被.NET框架淘汰。为了使CAS策略具有兼容性,请使用NetFx40_LegacySecurityPolicy配置开关。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=155570。
我无法访问源代码或编辑web服务器上的ClickOnce文件。我需要一个解决方案,可以使应用程序在我们公司的计算机上工作,而不需要更改web服务器或代码。
发布于 2017-01-23 18:23:07
错误消息中的链接给出了答案:
兼容性:使用CAS策略遗留选项 configuration元素允许您指定进程或库使用遗留CAS策略。启用此元素时,策略和证据重载将像在框架的早期版本中那样工作。
<configuration>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
</configuration>因此,要重新启用不推荐的代码,请将<NetFx40_LegacySecurityPolicy enabled="true"/>元素添加到YourApp.exe.config中。
如果您使用的是ClickOnce,则可以改为machine.config。对machine.config的编辑不会重新进行,因为它们可能会导致系统范围的运行时或安全后果,如果另一个选项可用,就不应该尝试编辑,而且永远不会没有测试。
或者,如果您想在.Net 3.5下运行整个应用程序(这是CLR的内部版本v2.0.50727,有一些额外的库),您可以用同样的方式指定。对于通过ClickOnce部署的应用程序来说,这不是一个选项。
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>https://stackoverflow.com/questions/41812984
复制相似问题