使用 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'
我可以轻松解决此问题吗?
这是我所知道的唯一完全托管的 sqlite3 库。
http://code.google.com/p/csharp-sqlite/