0

在使用 SQLite 在某些机器上造成严重破坏后,我的头好几次了,我偶然发现了该库的“仅限托管”版本。http://sourceforge.net/projects/sqlite-dotnet2/files/SQLite%20for%20ADO.NET%202.0/1.0.66.0/

我很兴奋并将其放入我的项目文件夹中,所以现在我的项目可以在每个人的计算机上运行,​​无论架构如何!

事实上,我非常兴奋,以至于我决定再次尝试使用 ILMerge(因为我的所有依赖项现在都得到了管理),而不是必须将 DLL 文件作为资源复制并在检测到它们不存在时将它们写入输出文件夹。

我使用以下命令编译了 EXE:

ilmerge.exe /target:winexe /zeroPeKind /out:"Core View.exe" CoreView.exe System.Data.SQLite.dll OpenHardwareMonitorLib.dll

(该zeroPeKind标志是必需的,因为尽管 SQLite 是托管的,但它没有被标记为这样,如果zeroPeKind不存在,则会导致编译错误)

现在的问题是,虽然它启动得很好,但当 DLL 文件不存在时尝试执行任何数据库操作时出现以下错误:

System.DllNotFoundException: Unable to load DLL 'System.Data.SQLite.DLL'

我可以轻松解决这个问题吗?

4

1 回答 1

1

这是我所知道的唯一一个完全托管的 sqlite3 库。

http://code.google.com/p/csharp-sqlite/

于 2012-04-13T13:30:54.620 回答