Загрузка сборки во время выполнения с нативными зависимостями (и другими файлами / папками) - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу загрузить Сборка A во время выполнения. Эта сборка A существует в подпапке приложения и имеет зависимости во время выполнения от некоторых других собственных сборок, некоторых jar-файлов и папки jre (поэтому мы говорим о некоторой оболочке java). Все эти зависимости существуют в той же папке, что и Сборка A .
Диаграмма будет выглядеть примерно так:
enter image description here

Проблема is:
Поскольку Assembly A Зависимости времени выполнения не существуют в папке сборки приложения (потребителя), я получаю исключение и не могу его использовать.

Вот пример исходного кода для загрузки сборки во время выполнения и использования экземпляра типа, принадлежащего этой сборке. Исключение возникает, когда я вызываю _ = instance.GetSomething(). Исключение:

System.TypeInitializationException: 'Инициализатор типа для AssemblyA_Dependency.Type' вызвал исключение. '

        var assembly = Assembly.LoadFrom(@"Releases\VersionA\AssemblyA.dll");

        var sdkProxyType = assembly
            .GetExportedTypes()
            .Where(type => typeof(ISdkProxy).IsAssignableFrom(type))
            .First();

        var instance = (ISdkProxy)Activator.CreateInstance(sdkProxyType);

        _ = instance.GetSomething();

PS: Имейте в виду, что если я скопирую все Сборка зависимостей от папки пользовательской сборки будет работать нормально.

Есть ли способ решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...