【混合模式程序集是针对“v2.0.50727”版的运行时生成的】今天在把以前写的代码生成工具从原来的.NET3.5升级到.NET4.0,同时准备进一步完善 , 将程序集都更新后,一运行程序在一处方法调用时报出了一个异常:
混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下 , 无法在 4.0 运行时中加载该程序集
其调用的方法是从数据库中获取原来已经使用过的数据库连接,当时也没注意,就是准备设断点然后单步调试,结果竟然是断点无法进入方法体内,后来仔细看了一下方法体的时候发现了一个问题 , 就是现有的.Data.这个数据访问是针对.NET2.0环境开发(最新的版本是1.0.66.0,2010年4月18日发布的),而目前官方也没有给出最新的.NET4的数据访问支持 。
既然出现这个问题,那肯定是上搜索解决方案 , 毕竟微软不可能因为升级到了.NET4.0的程序无法访问.NET2.0的程序集吧 。后来在著名的上果然找到了解决方案,就是在app.中添加一个配置节:
文章插图
这段配置节的意思是(参考自MSDN,具体地址:):
启用 .NET2.0 版 运行时激活策略 , 这是通过使用最新支持的运行时加载所有程序集 。
注意:由于配置文件的特性 , 如果在配置文件中存在节点 , 则必须将放在一个,否则会引发异常:配置系统未能初始化
在原来.NET2.0,.NET3.5的时候,由于程序运行环境本质还是.NET2.0,而到了.NET4.0由于整个程序集的版本更新,以前使用.NET2.0所编写的程序集与.NET4.0的程序集继续拧互操作的时候就会出现上面所说的兼容性问题 。
通过MSDN,我们可以知道,配置节中的属性是在.NET4.0中新增的 , 默认是false,表示:
使用默认的 .NET4 激活策略,该激活策略将加载 .NET4 通过使用公共语言运行时 (CLR) 版本 4 所创建的程序集,以及 CLR 早期版本通过使用受支持的低于版本 4 的最高 CLR 版本所创建的程序集 。
现在如果当程序在.NET4.0环境下要使用.NET2.0及.NET3.5的程序时就必须将设置为true,同时还要注意,需要在配置节的字节中添加配置节 , 并指定为“v4.0”,表示使用.NET4.0运行时来运行程序 。
有关更多及其子级可以查看MSDN:
:
:
- 如果你是一个正在迷茫的程序猿,本文会给你讲解一下技术人职业发展的途径
- qq小程序打不开怎么办 QQ小程序打不开
- 怎么设置打王者免打扰 怎么设置打王者免打扰模式
- 沈阳乐享大东小程序家电家具百货消费券领券入口
- 治疗混合痔的常用方法都有哪些呢 治疗混合痔的常用方法都有哪些
- 患有混合痔用什么方法治疗好的快 患有混合痔用什么方法治疗好的快呢
- 华为相机镜像模式怎么关闭 相机镜像模式怎么关闭
- 骑马与砍杀2两个模式 骑马与砍杀2多人模式有哪些
- 同学,这里有份程序员校招总结等你来取 | 面试10+公司
- 小米手机跳屏怎么解决办法 小米手机跳屏怎么解决办法是不是程序混乱了