zoukankan      html  css  js  c++  java
  • 在 .NET Framework 4.0 的程序中使用 .NET Framework 2.0 的程序集

    场景

    在 目标框架 为 .NET Framework 4 的程序中,引用 目标框架 为 .NET Framework 2.0 的程序集,并使用 .NET Framework 2.0 程序集中的类型或者静态方法。

    问题

    一般情况下,会报出如下错误

    未经处理的异常: System.IO.FileLoadException: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。

    解决

    文档参考

    .NET Framework 的文档配置文件架构 这一节对上述问题有解决方法。详见 <startup> 元素 中关于 useLegacyV2RuntimeActivationPolicy 特性的描述。

    简单来说

    当你需要且不得不在 目标框架 为 .NET Framework 4 的程序中,引用 目标框架 为 .NET Framework 2.0 的程序集,那么你应该修改程序配置文件。

    一般来说,程序配置文件在项目根目录中,名为 “app.config” 。 默认内容如下:

    <?xml version="1.0"?>
    <configuration>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
      </startup>
    </configuration>
    

    如果你项目中没有的话,可以手动添加,并在 “csproj” 文件中添加一条:

    <ItemGroup>
      <None Include="app.config" />
    </ItemGroup>
    

    根据 <startup> 元素 中的说法,你需要将“app.config”配置文件修改为:

    <?xml version="1.0"?>
    <configuration>
      <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
      </startup>
    </configuration>
    

    即可在程序中引用目标框架 为 .NET Framework 2.0 的程序集。

    发布事项

    当程序 Release 之后,在 Release 文件夹中会同时生成 “xxx.exe.config” 文件,此文件就是程序的配置文件。假如你没有使用默认配置,那么在发布时,此文件应随可执行程序一同发布,且保持在同一文件夹中。否则,程序将会使用默认配置。

    其他

    关于程序的配置文件,更多详细内容可以参阅 .NET Framework 的配置文件架构

  • 相关阅读:
    3D 图片播放焦点图插件Adaptor
    深入浅出 RPC
    深入浅出 RPC
    Fragment学习(一) :生命周期
    Activity学习(二):Activity的启动模式(转载)
    Activity学习(一):生命周期
    AsyncTask的使用
    Handler用法总结
    深入理解java泛型
    mysql多表连接和子查询
  • 原文地址:https://www.cnblogs.com/chr-wonder/p/8527602.html
Copyright © 2011-2022 走看看