【轉】Sqlite 混合模式程式集是針對“v2.0.50727”版的運行時產生的,在沒有配置其他資訊的情況下,無法在 4.0 運行時中載入該...

來源:互聯網
上載者:User

標籤:

開發環境: vs2010+.net framework 4.0+ System.Data.SQLite.DLL (2.0)
今天在做Sqlite資料庫測試,一運行程式在一處方法調用時報出了一個異常

 

混合模式程式集是針對“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運行時來運行程式。

有關更多startup及其子級可以查看MSDN:

startup:http://msdn.microsoft.com/zh-cn/library/bbx34a2h.aspx

supportedRuntime:http://msdn.microsoft.com/zh-cn/library/w4atty68.aspx

【轉】Sqlite 混合模式程式集是針對“v2.0.50727”版的運行時產生的,在沒有配置其他資訊的情況下,無法在 4.0 運行時中載入該...

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.