Can.net动态负载c++/来自内存的cli dll?

Can.net动态负载c++/来自内存的cli dll?,.net,c++-cli,.net,C++ Cli,我有一个依赖于本机dll的c++/cli dll。通过使用内存模块将本机dll嵌入cli dll,我可以将它们打包到一个混合dll中。 我想知道是否有可能将这个混合dll嵌入.net exe并从内存加载(而不将文件解压缩到磁盘)。 我尝试了Ilmerge和System.Reflection.Assembly.Load(字节[…]),但它不起作用 因此,我现在要做的是在调用函数之前提取dll,然后在程序完成后删除它,这是我不想要的。混合模式dll依赖于本机dll,由于Windows映像加载程序的限

我有一个依赖于本机dll的c++/cli dll。通过使用内存模块将本机dll嵌入cli dll,我可以将它们打包到一个混合dll中。 我想知道是否有可能将这个混合dll嵌入.net exe并从内存加载(而不将文件解压缩到磁盘)。 我尝试了Ilmerge和System.Reflection.Assembly.Load(字节[…]),但它不起作用


因此,我现在要做的是在调用函数之前提取dll,然后在程序完成后删除它,这是我不想要的。

混合模式dll依赖于本机dll,由于Windows映像加载程序的限制,无法从内存中加载。我已经看到了一些从内存中加载DLL的C++代码,但我怀疑你是否想这样做。它基本上重新实现了加载器


但是如果你想把exe作为一个文件分发,我可以建议你使用。使用此工具,您可以将混合模式DLL作为资源嵌入到C#程序集中。加载C#模块时,它会将混合模式程序集转储到临时文件夹中,并以透明方式加载。您甚至可以嵌入两个版本的混合模式dll,每个平台一个:x86或x64。

无法从内存加载混合模式程序集。这同样适用于任何本机dll。尝试编译为纯IL。