0

我将多个第三方托管和非托管 dll 嵌入到一个 dll 中。

该单个 dll 在运行时被拾取并注入到另一个主机应用程序中Assembly.Load ,整个事情应该作为带有插件的主机工作。(只是为了澄清)

我让它适用于所有 dll(托管、非托管和混合),除了一个:VideoOS.Platform.SDK.Export,我在运行时得到 dll not found 异常,该 dll 来自 Milestone NVR SDK

我试过了:

  • 将其作为 IncludeAssemblies、Unmanaged32Assemblies 和 Unmanaged64Assemblies
  • 切换:压缩,磁盘上的临时文件
  • 手动从资源中加载它:AppDomain.CurrentDomain.AssemblyResolve
  • 用(Reflector、DotPeek、ILSpy)反编译库本身都会出现问题,所以我认为可能是一些他们无法反编译的 pinvokes 或类似的东西。

笔记:

  1. 当 dll 与主机应用程序 exe 位于同一文件夹中时,整个过程有效,但在嵌入时无效
  2. 我遇到了一个引用库的问题,该库在放入 Unmanaged32Assemblies 时开始工作已解决 OK
4

0 回答 0