在客户端选择ClickOnce应用程序的目标框架

时间:2017-01-23 18:17:01

标签: .net windows clickonce

我们正在使用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服务器或代码中进行更改。

1 个答案:

答案 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>