在 .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 的配置文件架构 。
转载于:https://www.cnblogs.com/chr-wonder/p/8527602.html
在 .NET Framework 4.0 的程序中使用 .NET Framework 2.0 的程序集相关推荐
- 将.net framework 4 部署在docker中的全过程(支持4.0 到 4.8,3.5应该也可以)
前言: docker自从诞生之初,就是运行在linux系统中,后来windows上也可以运行docker了,但是微软是通过自身的hyper-v技术,在你的windows系统中虚拟出来了一个小的linu ...
- 通过 Jena Semantic Web Framework 在 Jave 应用程序中使用 RDF 模型
http://www.ibm.com/developerworks/cn/java/j-jena/ RDF 越来越被认为是表示和处理半结构化数据的一种极好选择.本文中,Web 开发人员 Philip ...
- Jena 简介:通过 Jena Semantic Web Framework 在 Jave 应用程序中使用 RDF 模型
简介: RDF 越来越被认为是表示和处理半结构化数据的一种极好选择.本文中,Web 开发人员 Philip McCarthy 向您展示了如何使用 Jena Semantic Web Toolkit,以 ...
- 通过 Jena Semantic Web Framework 在 Jave 应用程序中使用 RDF 模型 (转)
RDF 越来越被认为是表示和处理半结构化数据的一种极好选择.本文中,Web 开发人员 Philip McCarthy 向您展示了如何使用 Jena Semantic Web Toolkit,以便在 J ...
- 在使用Gradle构建的Spring Boot应用程序中覆盖Spring Framework版本
如果要使用或仅通过Spring Boot检查Spring的最新版本,但当前的Spring Boot版本取决于旧的Spring版本,则需要稍微调整Gradle构建配置. 例如,在撰写本文时,Spring ...
- 在C程序中显示八进制数前缀0和十六进制前缀0x
我们已经知道在打印变量的时候,要分别使用%d,%o,%x显示十进制.八进制.和十六进制的变量. 如: #include<stdio.h> int main(){int x = 100;pr ...
- .NET 2.0应用程序攻击时-安装.NET Runtime之后调试怪异现象
I've been developing using the Logitech io2 Pen SDK recently and also, coincidentally installed .NET ...
- 将终结点图添加到你的ASP.NET Core应用程序中
在本文中,我将展示如何使用DfaGraphWriter服务在ASP.NET Core 3.0应用程序中可视化你的终结点路由.上面文章我向您演示了如何生成一个有向图(如我上篇文章[译]使用DOT语言和G ...
- 在VB应用程序中调用Excel2000
Visual Basic简称(VB)是设计Windows应用程序强有力的开发工具,"全球绝大多数Windows应用程序都是用VB开发的": Excel是目前使用最广泛的办公应用软件 ...
最新文章
- Linux 忘记密码如何登陆—续篇2救援模式
- 据lovecherry的一步一步学Remoting序列文章学习.net Remoting日记(2)
- mysql5.6视频_网易视频云:MySQL 5.6 5.7最优配置文件模板
- Flutter:实现红包晃动效果
- 早教机器人刷固件_机器人线刷包_机器人刷机包_机器人固件包_机器人救砖包 - 线刷宝ROM中心...
- 使用NoSQLUnit测试Spring Data MongoDB应用程序
- Android一个漂亮的日历组件源码
- 漫步最优化二十二——收敛速率
- 外媒:苹果明年上半年推出iPhone SE 3 支持5G搭载A14处理器
- java项目飞机大战
- cad的php文件怎么用,CAD无法弹出打开、保存等窗口,用FILEDIA解决
- 成都VS上海,先锋设计机构与未来建筑的“双城battle”
- Centos 安装阿里软件安装源
- MES系统是什么?如何搭建一个科学高效的MES报表系统?
- DBeaver设置Maven镜像仓库
- 计算机查找全部文件,一键找到你电脑中的所有文件
- Watering Grass UVA - 10382 贪心
- EI检索的国际会议有这些
- Cannot construct instance of `com.*` (although at least one Creator exists): cannot deserializ
- 小程序传布尔_拥抱和传布禅宗编码
热门文章
- Linux之Shell脚本入门
- Packet tracer软件安装,模拟网络搭建【Packet tracer安装和使用】
- 从源码出发:JAVA中对象的比较
- 安装好了java7怎么打开,Windows怎么安装JDK1.7 JDK1.7怎么安装图解
- 电液伺服系统_电液伺服系统的误差/偏差以及开环增益
- 蓝桥杯 算法提高 递推求值(矩阵快速幂)详解
- 华为认证数通专家HCIE-Datacom 11月30日发布
- Sentinel Go 0.4.0 发布,支持热点流量防护能力
- java 连接linux失败,Jenkins连接Linux失败
- mc有什么红石机器人_mc:作为一个mc萌新应该掌握哪些基本功?还需要知道些什么?...