在用SQLite对我的头部进行了多次调整后,我在一些机器上引发了havok,我偶然发现了一个“Managed Only”版本的库。 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'
我可以轻松解决这个问题吗?