C# - 将非托管代码DLL合并到.exe中,而不存储到磁盘

时间:2018-04-12 06:40:46

标签: c# .net dll exe

是否可以将非托管的.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输出到构建目录中。

0 个答案:

没有答案