.net core не выбирает сборки из базового каталога

У меня есть требование, в котором типы для загрузки будут указаны в файле конфигурации, в платформе .net мы использовали запись конфигурации, как показано ниже в файле конфигурации -

"PaasLogger": "HsopPaas, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"

и используйте метод, как показано ниже -

var assembly = Assembly.Load(configuration["PaasLogger"]);

теперь, если HsopPaas.dll находится в базовом каталоге, .NET framework может забрать это и загрузить В ядре .net это не работает, и я получаю FileNotFoundException, согласно ядру .net это дизайн
Но что нам теперь делать, что мне непонятно, как я могу сказать ядру .net загружаться из базового каталога?

где вы выполняете эту команду? var assembly = Assembly.Load(configuration["PaasLogger"]);, в контроллере?

AmiNadimi 11.04.2018 13:47

как это повлияет? мы делаем это в классе стартапов.

ankush 11.04.2018 13:56

потому что в контроллере вы должны ввести IHostingEnvironment, при запуске он уже введен

AmiNadimi 11.04.2018 14:00

Чем здесь может помочь IhostingEnvironment?

ankush 11.04.2018 14:01

Я обновил ответ, надеюсь, он отвечает вашим потребностям.

AmiNadimi 11.04.2018 14:15
0
5
369
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если у вас есть путь к сборке, это будет довольно просто:

С этими операторами using:

using System.Reflection;
using System.Runtime.Loader;

Попробуй это:

var myAssembly = AssemblyLoadContext.Default.LoadFromAssemblyPath(pathTodll);

Более

Загрузка всех сборок из корневой папки:

Получите базовый каталог вашего приложения и загрузите оттуда все ваши файлы .dll:

В Configure метод startup.cs:

string appPath = env.ContentRootPath; //Application Base Path
List<Assembly> allAssemblies = new List<Assembly>();

foreach (string dll in Directory.GetFiles(appPath , "*.dll"))
    allAssemblies.Add(Assembly.LoadFile(dll));

Я хочу, чтобы ядро ​​.net проверяло в базовом каталоге, это заставит загружать только эту dll, что, если есть зависимость этой dll от другой dll, которая вызовет здесь проблему, пока я не загрузю эту зависимость

ankush 11.04.2018 13:26

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