我的申请包括SQLite.dll
. 如何在 C# WPF 中制作单可执行应用程序而不通过 ClickOnce 应用程序或任何安装文件设置进行安装。
如何捆绑System.Data.SQLite
到我的项目中,这样我就可以生成一个没有标记 DLL 的单可执行应用程序?
对于System.Data.SQLite.dll
程序集,您可以将其作为资源嵌入,然后Reflection.Load
在资源被任何代码使用之前从资源中使用,这样就可以使用了。或处理何时AssemblyResolve
被调用,然后从资源中加载它。
这SQLite.Interop.dll
就是困难的部分,因为它实际上对 SQLLite C++ 库进行了所有调用,并且System.Data.SQLite
程序集使用的方法对基于 X86 或 x64 的正确 DLL 进行了调用。您可以将本文的第一部分与本文结合起来创建第二个 DLL 的基于内存的加载,但您需要复制 x64/x86 和 .NET dll 执行的初始检查,然后加载正确的。(您只需嵌入两者并加载正确的)