混合模式程序集是針對“v2.0.50727”版的運行時生成的


混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集。

由於“system.data.sqlite.dll”不完整造成的。

在app.config文件中添加:

<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>

1 <?xml version="1.0" encoding="utf-8" ?>
2 <configuration>
3   <startup useLegacyV2RuntimeActivationPolicy="true">
4     <supportedRuntime version="v4.0"/>
5   </startup>
6   <connectionStrings>
7     <add connectionString="Data Source = cater.db; Version = 3;" name="conStr" />
8   </connectionStrings>
9 </configuration>

 

--------------------------------------------------------------------------------

混合模式程序集是針對“v2.0.50727”版的運行時生成的

混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集

 

其調用的方法是從sqlite數據庫中獲取原來已經使用過的數據庫連接,當時也沒注意,就是准備設斷點然后單步調試,結果竟然是斷點無法進入方法體內,后來仔細看了一下方法體的時候發現了一個問題,就是現有的System.Data.Sqlite這個數據訪問provider是針對.NET2.0環境開發(最新的版本是1.0.66.0,2010年4月18日發布的),而目前官方也沒有給出最新的.NET4的數據訪問支持。

既然出現這個問題,那肯定是上GOOGLE搜索解決方案,畢竟微軟不可能因為升級到了.NET4.0的程序無法訪問.NET2.0的程序集吧。后來在著名的stackoverflow.com上果然找到了解決方案,就是在app.config中添加一個配置節:startup

<startup useLegacyV2RuntimeActivationPolicy="true">

<supportedRuntime version="v4.0"/>

</startup>

這段配置節的意思是(參考自MSDN,具體地址:http://msdn.microsoft.com/zh-cn/library/bbx34a2h.aspx):

 


啟用 .NET Framework 2.0 版 運行時激活策略,這是通過使用最新支持的運行時加載所有程序集。

 


注意:由於config配置文件的特性,如果在config配置文件中存在configSections節點,則必須將configSections放在一個,否則會引發異常:配置系統未能初始化


 

 

 

在原來.NET2.0,.NET3.5的時候,由於程序運行環境本質還是.NET2.0,而到了.NET4.0由於整個程序集的版本更新,以前使用.NET2.0所編寫的程序集與.NET4.0的程序集繼續擰互操作的時候就會出現上面所說的兼容性問題。

 

通過MSDN,我們可以知道,startup配置節中的useLegacyV2RuntimeActivationPolicy屬性是在.NET4.0中新增的,默認是false,表示:

 


使用默認的 .NET Framework 4 激活策略,該激活策略將加載 .NET Framework 4 通過使用公共語言運行時 (CLR) 版本 4 所創建的程序集,以及 CLR 早期版本通過使用受支持的低於版本 4 的最高 CLR 版本所創建的程序集。

 

現在如果當程序在.NET4.0環境下要使用.NET2.0及.NET3.5的程序時就必須將 useLegacyV2RuntimeActivationPolicy設置為true,同時還要注意,需要在startup配置節的字節中添加 supportedRuntime配置節,並指定為“v4.0”,表示使用.NET4.0運行時來運行程序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該... 混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行 C#異常--System.IO.FileLoadException:“混合模式程序集是針對“v2.0.50727”版的運行時生成的錯誤 C#連接Sqlite 出現:混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集。的解決方案 System.IO.FileLoadException:“混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集。” 混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集 VS報錯之混合模式程序集是針對“v1.1.4322”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集。 生成此程序集的運行時比當前加載的運行時新,無法加載此程序集。 未能加載文件或程序集“BLL”或它的某一個依賴項。生成此程序集的運行時比當前加載的運行時新,無法加載此程序集。 未能加載文件或程序集“xxx”或它的某一個依賴項。生成此程序集的運行時比當前加載的運行時新,無法加載此程序集
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM