c# – 在非开发PC上找不到System.Data.SQLite

我在Visual Studio中创建了一个C#项目,并在 http://sqlite.phxsoftware.com/上使用了SQLite 4.0 ADO库上的程序集.

程序在开发机器上运行正常,但是当我尝试在另一个系统上运行它时,总会出现错误,指出无法找到System.Data.SQLite.dll.我把文件放到程序目录中.我还尝试将其放入PATH下列出的目录中.有什么建议?

我正在使用openFileDialog打开数据库.这是相应的代码:

con = new SQLiteConnection();


                OpenFileDialog ofd1 = new OpenFileDialog();

                ofd1.Filter = "db Datei (*.db)|*.db|Alle Dateien (*.*)|*.*";

                if (ofd1.ShowDialog() == DialogResult.OK)
                    filepath = ofd1.FileName;
                filepath.Replace("\\", "\\\\");
                con.ConnectionString = "Data Source= \"" + filepath + "\"";
    [...]

如前所述,这适用于开发机器(Windows 7,64bit).
测试机器在虚拟机(Windows 7,32位)中运行.
发生以下异常:

System.IO.FileNotFoundException: Die Datei oder Assembly "System.Data.SQLite.dll" oder eine Abhängigkeit davon wurde nicht gefunden. Das angegebene Modul wurde nicht gefunden.
    Dateiname: "System.Data.SQLite.dll"
       bei WindowsFormsApplication1.Form1.button2_Click(Object sender, EventArgs e)
       bei System.Windows.Forms.Control.OnClick(EventArgs e)
       bei System.Windows.Forms.Button.OnClick(EventArgs e)
       bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       bei System.Windows.Forms.Control.WndProc(Message& m)
       bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
       bei System.Windows.Forms.Button.WndProc(Message& m)
       bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Geladene Assemblys **************
mscorlib
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
----------------------------------------
WindowsFormsApplication1
    Assembly-Version: 1.0.0.0.
    Win32-Version: 1.0.0.0.
    CodeBase: file:///C:/Users/andi/Documents/My%20Dropbox/Own%20Public%20Folders/Public%20(Andy%20Malessa)/juralookup(Wir%20brauchen%20dringend%20nen%20Namen)/DataManagementTool/WindowsFormsApplication1.exe.
----------------------------------------
System.Windows.Forms
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Windows.Forms.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 built by: RTMRel.
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
mscorlib.resources
    Assembly-Version: 4.0.0.0.
    Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
----------------------------------------

所以基本上它说:“System.Data.SQLite.dll”或找不到依赖项.

该文件存在于应用程序目录中.这是一个文件列表:

如果您从C#项目引用存储在开发计算机上的GAC中的System.Data.SQLite.dll中存储的DLL,并且测试客户端上不存在该DLL,您将收到该消息.在这种情况下,您需要在测试计算机上安装SQLlite(从而将DLL放在GAC中),或者更改项目中的引用以指向本地DLL instaid.
相关文章
相关标签/搜索