Не удалось загрузить плагин в консольном приложении, объединенном с ILMerge - PullRequest
0 голосов
/ 14 октября 2018

Я объединил консольное приложение, которое ссылается на класс libray mylib.dll в net45, с Утилита ILMerge .

Плагин (ы) загрузки консольного приложения во время выполнения, который реализует интерфейс.

Плагин ссылается на ту же библиотеку классов mylib.dll, которая используется console.exe

Если я запускаю консольное приложение без слияния, оно может успешно загрузить плагин.

Команда объединения

    ilmerge /out:"outdir\console.exe" console.exe *.dll 
        /target:exe /targetplatform:v4,C:\Windows\Microsoft.NET\Framework\v4.0.30319 /wildcards /ndebug 

Но при объединении консольного приложения со всеми его зависимостями с использованием ILMerge плагин не может быть загружен и выдает исключение:

Исключение загрузчика: система.IO.FileNotFoundException: не удалось загрузить файл или сборку 'mylib.dll, версия = 3.0.0.0, культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей.Система не может найти указанный файл.Имя файла: 'mylib.dll, версия = 3.0.0.0, культура = нейтральная, PublicKeyToken = null'

Обходным решением, позволяющим избежать исключений, является плагин, ссылающийся на объединенное приложение console.exe.В этом случае он работает нормально без исключения, но я хочу, чтобы плагин ссылался на библиотеку классов, особенно на все DLL, на которые ссылается плагин, ссылается console.exe.

Вопрос:

Что я пропустил, чтобы убедиться, что все объединенные сборки, использующие ILMerge, видны плагину из консольного приложения и успешно загружены?

...