C#使用Sqlite.dll問題記錄

2018年5月14日

C#添加 Sqlite.dll 引用

  1. 使用nuget,操做最爲簡單,同時支持32位和64位系統,推薦。缺點是多了 ef、linq等dll文件。
  2. 手動添加 sqlite.dll。缺點配置繁瑣;優勢,只須要 SQLite.Interop.dllSystem.Data.SQLite.dll 兩個文件

這裏只介紹第二種方法,步驟以下:html

  1. 官網 wiki 下載,下載 .NET 2.0 SP2 預編譯靜態連接庫(Precompiled Statically-Linked Binaries for 64-bit Windows (.NET Framework 2.0 SP2))的 binary 版

輸入圖片說明

  1. 配置 config 文件,具體參考已下載 zip 文件裏的 test.exe.config 代碼
<system.data>
    <DbProviderFactories>
        <remove invariant="System.Data.SQLite" />
        <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.108.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
</system.data>

異常來自 HRESULT:0x8007000B

System.BadImageFormatException:「試圖加載格式不正確的程序。 (異常來自 HRESULT:0x8007000B)」sql

輸入圖片說明

緣由:C# 在調用C++dll時,可能會出現 :試圖加載格式不正確的程序。 (異常來自 HRESULT:0x8007000B)這個錯誤。ide

實際狀況:生成平臺目標爲AnyCPU(首選32) 輸入圖片說明code

解決:首選32 去勾,或者生成平臺改成 x64。懶人方法是使用nuget添加 sqlite 引用。orm

相關文章
相關標籤/搜索