使用Fody Costura将多个托管和非托管dll合并为单个单个dll

时间:2017-11-23 20:58:35

标签: c# .net dll fody-costura

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

在运行时使用Assembly.Load获取单个dll并将其注入另一个主机应用程序 整个事情应该作为插件的东西工作。 (只是为了澄清)

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

我试过了:

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

注意:

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

0 个答案:

没有答案