• AForge.NET .NET2.0程序集无法在.net 4.0 中运行的解决方案


    如有雷同,不胜荣欣,若转载,请注明

    最近在项目上一直使用.net4.0 framework,突然发现一个AForge.net中使用ffmepeg下的一个dll时,提示只能在2.0下运行,在众多MSDN和资料的帮助下终于又提高 了一点,今特地记录一下,一边日后遗忘,解决方法如下:

    就是在app.config中添加一个配置节:

    startup

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <startup useLegacyV2RuntimeActivationPolicy="true">

       

     <supportedRuntime version="v2.0.50727"/>
        <supportedRuntime version="v4.0" 
    sku=".NETFramework,Version=v4.0"/>
      </startup>
    </configuration>

    黑粗体部分是需要加上的部分,默认黑粗体是没有的。

     

    原来在.NET2.0 framework,.NET3.5 framework的时候,由于程序运行环境本质还是.NET2.0,而到了.NET4.0由于整个程序集的版本更新,以前使用.NET2.0所编写的程序集与.NET4.0的程序集互操作的时候就会出现上面所说的兼容性问题。

    通过MSDN,我们可以知道,startup配置节中的useLegacyV2RuntimeActivationPolicy属性是在.NET4.0中新增的,默认是false,表示:使用默认的 .NET Framework 4 激活策略,该激活策略将加载 .NET Framework 4.0,通过使用公共语言运行时 (CLR) 版本 4.0 所创建的程序集,以及 CLR 早期版本通过使用受支持的低于版本 4.0 的最高 CLR 版本所创建的程序集。 

    现在如果当程序在.NET4.0环境下要使用.NET2.0或.NET3.5及以下的程序集时就必须将useLegacyV2RuntimeActivationPolicy设置为true,同时还要注意,需要在startup配置节的字节中添加supportedRuntime配置节,并指定为"v4.0",表示使用.NET4.0运行时来运行程序。

     

     

    当你遇到挫折和困难时,千万记住永远永远永远不要放弃
  • 相关阅读:
    为zabbix穿上一件漂亮的外衣
    CentOS7 Ceph分布式集群部署
    SSH 免秘钥登录
    zabbix监控Tomcat/JVM 实例性能
    zabbix 监控 IPMI
    2装饰者模式
    1代理模式
    3单例模式
    2抽象工厂模式
    1工厂模式
  • 原文地址:https://www.cnblogs.com/ching2009/p/4156674.html
Copyright © 2020-2023  润新知