使用 ILMerge 后找不到 DLL

本文关键字:DLL 找不到 ILMerge 使用 | 更新日期: 2023-09-27 18:31:08

在用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'

我可以轻松解决此问题吗?

使用 ILMerge 后找不到 DLL

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

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