Объединение нескольких управляемых и неуправляемых dll в один dll с Fody Costura

Я объединяю несколько сторонних управляемых и неуправляемых dll в одну dll.

Эта единственная DLL-библиотека подбирается и внедряется в другое хост-приложение во время выполнения. Assembly.LoadПредполагается, что все это работает как хост с плагинами. (просто для ясности)

У меня это работает для всех DLL (управляемых, неуправляемых и смешанных) за исключением одного: VideoOS.Platform.SDK.Export, для которого я получаю исключение dll не найден во время выполнения, dll из Milestone NVR SDK

Я пробовал:

  • положить его как IncludeAssemblies, Unmanaged32Assemblies и Unmanaged64Assemblies
  • переключение: сжатие, временные файлы на диске
  • вручную загружая его из ресурсов с помощью: AppDomain.CurrentDomain.AssemblyResolve
  • декомпилируя саму библиотеку с помощью (Reflector, DotPeek, ILSpy), все они сталкиваются с проблемами, так что я думаю, что это, вероятно, некоторые пинвоки или аналогичные, которые они не могут декомпилировать.

Заметки:

  1. Весь процесс работает, когда dll находится в той же папке, что и exe приложения хоста, но не когда он встраивается
  2. У меня была проблема со ссылочной библиотекой, которая начала работать, когда положить ее в Unmanaged32Assemblies было решено ОК

0 ответов

Другие вопросы по тегам