• C#使用SQLite出错:无法加载 DLL“SQLite.Interop.dll”,找不到指定的模块


    引用:https://www.mzwu.com/article.asp?id=3180

    在SQLite官方下载了System.Data.SQLite,编写如下测试代码:
    复制内容到剪贴板程序代码
    using (SQLiteConnection conn = new SQLiteConnection(@"Data Source=F:my.db;Pooling=true;FailIfMissing=false"))
    {
    using (SQLiteDataAdapter adapter = new SQLiteDataAdapter("select id,total from table1", conn))
    {
    DataTable table1 = new DataTable();
    adapter.Fill(table1);

    MessageBox.Show(table1.Rows[0]["total"].ToString());
    }
    }

    运行出错,在new SQLiteConnection处提示:
    引用内容
    无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。


    解决方法

    我下载的System.Data.SQLite版本是Precompiled Binaries for 32-bit Windows (.NET Framework 3.5 SP1),这个版本提供了两个zip包:

    ①.sqlite-netFx35-binary-bundle-Win32-2008-1.0.79.0.zip
    引用内容
    This binary package features the mixed-mode assembly and contains all the binaries for the x86 version of the System.Data.SQLite 1.0.79.0 (3.7.10) package. The Visual C++ 2008 SP1 runtime for x86 and the .NET Framework 3.5 SP1 are required.

    ②.sqlite-netFx35-binary-Win32-2008-1.0.79.0.zip
    引用内容
    This binary package contains all the binaries for the x86 version of the System.Data.SQLite 1.0.79.0 (3.7.10) package. The Visual C++ 2008 SP1 runtime for x86 and the .NET Framework 3.5 SP1 are required.

    带bundle的表示动态库是按混合模式编译的,在使用的时候只需要System.Data.SQLite.dll就可以了,而不带bundle的则是将非托管部分和托管部分分别编译,System.Data.SQLite.dll不能独立使用,还需要有SQLite.Interop.dll才能使用。

    我用的是不带bundle包中的System.Data.SQLite.dll,解决方法是要么手工复制SQLite.Interop.dll和exe放一块(不能用引用),要么换成引用bundle包中的System.Data.SQLite.dll。

    相关链接

    [1]·System.Data.SQLite Download Page:http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

  • 相关阅读:
    Linux下常用软件安装(tar bz gz等压缩包的压缩和解压)
    《那些年啊,那些事——一个程序员的奋斗史》五
    IT人士 不能一辈子靠技术生存
    十八年开发经历小结
    《那些年啊,那些事——一个程序员的奋斗史》一
    软件工程及软件项目开发流程
    《那些年啊,那些事——一个程序员的奋斗史》三
    AJAX技术解读
    全程追踪入侵JSP网站服务器
    《C语言程序设计》教学的几点体会
  • 原文地址:https://www.cnblogs.com/rickyliu/p/13098868.html
Copyright © 2020-2023  润新知