是否可以将非托管的.dll合并到.exe中而不必将其临时存储为文件?
我安装了System.Data.SQLite.Core,它有一个托管的.dll System.Data.SQLite.dll
和一个非托管的.dll SQLite.Interop.dll
。
我能够使用资源完全合并System.Data.SQLite.dll
。
但它不适用于SQLite.Interop.dll,我可以将它作为嵌入式资源,但只要我将它与AssemblyResolve挂钩,我的应用程序就会立即关闭。
也许有一种方法可以将它存储为文件,而无需在任何地方看到.exe旁边的文件,然后是Assembly.LoadFrom,然后删除已经隐藏的文件,它仍然有用吗?这最终与Managed dll的AssemblyResolve基本相同,但无需编写然后阅读,托管,您只需从资源中读取即可。
文件大小对我的应用来说不是问题。 所以你们有任何想法,我很高兴收到。 如果您需要我提供更多信息,我很乐意给予。
旁注:不需要引用.dll。我不会在任何地方使用它,只是将.targets输出到构建目录中。