如何修复“无法加载DLL'SQLite.Interop.dll':找不到指定的模块”?

时间:2019-04-21 11:46:37

标签: sql asp.net sqlite

我想将一个asp.net Web表单项目连接到一个sqlite数据库,所以我创建了一个Dbase.cs类来处理sql命令。 在将System.Data.SQLite提供程序与Nuget包括在一起之后,出现以下错误-无法加载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();

    }
}

1 个答案:

答案 0 :(得分:0)

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

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

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