混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集...
其調(diào)用的方法是從sqlite數(shù)據(jù)庫中獲取原來已經(jīng)使用過的數(shù)據(jù)庫連接,當時也沒注意,就是準備設(shè)斷點然后單步調(diào)試,結(jié)果竟然是斷點無法進入方法體內(nèi),后來仔細看了一下方法體的時候發(fā)現(xiàn)了一個問題,就是現(xiàn)有的System.Data.Sqlite這個數(shù)據(jù)訪問provider是針對.NET2.0環(huán)境開發(fā)(最新的版本是1.0.66.0,2010年4月18日發(fā)布的),而目前官方也沒有給出最新的.NET4的數(shù)據(jù)訪問支持。
既然出現(xiàn)這個問題,那肯定是上GOOGLE搜索解決方案,畢竟微軟不可能因為升級到了.NET4.0的程序無法訪問.NET2.0的程序集吧。后來在著名的stackoverflow.com上果然找到了解決方案,就是在app.config中添加一個配置節(jié):startup
<?xml version="1.0"?><configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
這段配置節(jié)的意思是(參考自MSDN,具體地址:http://msdn.microsoft.com/zh-cn/library/bbx34a2h.aspx):
啟用 .NET Framework 2.0 版 運行時激活策略,這是通過使用最新支持的運行時加載所有程序集。
注意:由于config配置文件的特性,如果在config配置文件中存在configSections節(jié)點,則必須將configSections放在一個,否則會引發(fā)異常:配置系統(tǒng)未能初始化
?
在原來.NET2.0,.NET3.5的時候,由于程序運行環(huán)境本質(zhì)還是.NET2.0,而到了.NET4.0由于整個程序集的版本更新,以前使用.NET2.0所編寫的程序集與.NET4.0的程序集繼續(xù)擰互操作的時候就會出現(xiàn)上面所說的兼容性問題。
通過MSDN,我們可以知道,startup配置節(jié)中的useLegacyV2RuntimeActivationPolicy屬性是在.NET4.0中新增的,默認是false,表示:
?
使用默認的 .NET Framework 4 激活策略,該激活策略將加載 .NET Framework 4 通過使用公共語言運行時 (CLR) 版本 4 所創(chuàng)建的程序集,以及 CLR 早期版本通過使用受支持的低于版本 4 的最高 CLR 版本所創(chuàng)建的程序集。
?
現(xiàn)在如果當程序在.NET4.0環(huán)境下要使用.NET2.0及.NET3.5的程序時就必須將useLegacyV2RuntimeActivationPolicy設(shè)置為true,同時還要注意,需要在startup配置節(jié)的字節(jié)中添加supportedRuntime配置節(jié),并指定為“v4.0”,表示使用.NET4.0運行時來運行程序。
?
有關(guān)更多startup及其子級可以查看MSDN:
startup:http://msdn.microsoft.com/zh-cn/library/bbx34a2h.aspx
supportedRuntime:http://msdn.microsoft.com/zh-cn/library/w4atty68.aspx
?
源:http://hi.baidu.com/mubingyun/blog/item/aa4c833d832d7ae03c6d97e4.html[轉(zhuǎn)載于]
?
轉(zhuǎn)載于:https://www.cnblogs.com/lenther2002/p/4525034.html
總結(jié)
以上是生活随笔為你收集整理的混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Echarts3地图可视化教程
- 下一篇: pom添加mysql依赖tomcat崩溃