【问题标题】:How to fix "Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found"?如何修复“无法加载 DLL 'SQLite.Interop.dll':找不到指定的模块”?
【发布时间】:2019-04-21 11:46:36
【问题描述】:

我想将一个 asp.net Web 表单项目连接到一个 sqlite 数据库,所以我创建了一个 Dbase.cs 类来处理 sql 命令。 在使用 Nuget 包含 System.Data.SQLite 提供程序后,我收到以下错误 - 无法加载 DLL 'SQLite.Interop.dll':找不到指定的模块。

我读到我需要指定正确的架构 (x64/x86),但我似乎无法在任何地方找到 SQLite.Interop.dll 文件。 我需要为我的平台安装二进制包以外的东西吗?

Dbase.cs:

using System;
using System.Data;
using System.Web;
using System.Data.SQLite;

public class Dbase
{
    public Dbase()
    {

    }

    public static SQLiteConnection MakeConnection(string dbFile = "DB.sqlite")
    {
        SQLiteConnection c = new SQLiteConnection();
        c.ConnectionString = "Data Source=" +
            HttpContext.Current.Server.MapPath("~/App_Data/" + dbFile) +
            ";Version=3;";
             c.Open();
        return c;
    }

    public static DataTable SelectFromTable(string strSQLite, string FileName = "DB.sqlite")
    {
        SQLiteConnection c = MakeConnection(FileName);
        SQLiteCommand comm = new SQLiteCommand();
        comm.CommandText = strSQLite;
        comm.Connection = c;
        DataTable dt = new DataTable();
        SQLiteDataAdapter da = new SQLiteDataAdapter(comm);
        da.Fill(dt);
        c.Close();
        return dt;
    }

    public static void ChangeTable(string strSQLite, string FileName = "DB.sqlite")
    {
        SQLiteConnection c = MakeConnection(FileName);
        SQLiteCommand comm = new SQLiteCommand();
        comm.CommandText = strSQLite;
        comm.Connection = c;
        comm.ExecuteNonQuery();
        c.Close();

    }
}

【问题讨论】:

    标签: sql asp.net sqlite


    【解决方案1】:

    DLL 不应被视为要编辑的文件。它们是动态链接库。也就是说,它们是你的其他文件编译成一个的结果,并且只有在编译后才可用。

    您的问题出在其他地方,而不是在 DLL 中。另一个文件有问题,一旦该文件被编译到 DLL 中,它就会冒泡。

    您的 .csproj 文件中的包引用是否正确?如果是这样,我建议在类似的线程中查看this comment

    【讨论】:

    • 问题不在于dll,而在于它包含在项目中。我找不到它,所以我无法将它包含在我的项目中。在包含数据提供者之后,我什至应该手动包含它吗?还有,它是一个网络表单项目,没有.csproj文件,反正我也找不到。
    • 当 IIS 运行网站时,DLL 是否被复制到 Temporary ASP.NET files 文件夹中?我看到有人说他们必须在启动 IIS 后手动复制它?
    • 在哪里可以找到这个文件夹?
    • 在这里试试C:\Windows\Microsoft.NET\Framework\Vx.x.xxxx\Temporary ASP.NET Files\root
    • 对不起,我知道的不多。也许调查一下。
    猜你喜欢
    • 2019-12-24
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多