SQlite using 语句在另一台计算机上给出无法加载 DLL 'SQLite.Interop.dll' 错误

SQlite using statement gives Unable to load DLL 'SQLite.Interop.dll' error on another computer

这是我为数据库连接编写的代码:

private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{                       
        using (SQLiteConnection con = new SQLiteConnection(connectionString)) 
        {
            try
            {
                con.Open();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }

            if (con.State == System.Data.ConnectionState.Open)
            {
                Console.WriteLine("Database Opened");

                ushort[] writeData = new ushort[10];
                writeData = parseList(byteList);

                if (writeData != errorBytes)
                {
                    writeToDb(con, writeData);
                }

                else
                {
                    Console.WriteLine("Error Bytes returned! BROKEN DATA!!!");
                }

                //con.Close();
            }

            else
            { 
                Console.WriteLine("Can't open the database!");
            }
        }
    }`

当我 运行 我编写代码的计算机上的程序正常运行并打开数据库时。但是,当我 运行 我在另一台计算机代码中的程序不会进入 using 语句并给出异常 SQLite.Interop.dll 未找到。我将 System.Data.SQLite.dll 添加到我的项目引用中。我在另一台计算机上也有这个 dll 文件。我是否需要向另一台计算机添加任何内容才能使该程序正常运行?

尝试检查 connectionString,SQLite 文件的位置,..也许你正试图在不允许你的程序在另一台计算机上写入的地方创建它。如果有差异,请尝试 运行 您的应用程序作为管理员。我唯一想到的是它在创建连接时崩溃,因此它不会进入 using 语句。

我发现问题出在 SQLite dll 上。当我从 NuGet 包管理器安装 System.Data.SQLite 库并将平台目标设置为 x86 时,问题已解决。虽然在我问这个问题之前平台目标是 x86,但是从 NuGet 包管理器重新安装库解决了我的问题。在此之前,我使用从 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 下载的 dll 作为我项目的参考。