У меня есть новое приложение .net core mvc, n-уровневая структура, использующая mef для загрузки каждого слоя в качестве плагина.Проблема, которую я имею, использует mef для загрузки слоя доступа к данным, когда он использует пакет nuget ядра структуры сущностей.я получаю: Could not load file or assembly 'Microsoft.EntityFrameworkCore, Version=2.2.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified
, когда я звоню CreateContainer()
.
Я вручную пытался добавить dll-файлы зависимостей в выходной каталог, но пока безрезультатно.я также определил область действия моего файла, чтобы загрузить только те библиотеки DLL, которые соответствуют именам моих библиотек.По-прежнему.
Я создал фиктивный проект на github , чтобы показать ошибку, которую я получаю.Фактический код взрывается в строке 96 при запуске проекта Mvc.
var registrar = new ModuleRegistrar(services);
var conventions = new ConventionBuilder();
conventions
.ForTypesDerivedFrom<IModule>()
.Export<IModule>()
.Shared();
var dir = Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().Location).LocalPath);
var dlls = Directory.GetFiles(dir, "TestMEF*.dll", SearchOption.AllDirectories);
var asms = dlls.Select(AssemblyLoadContext.Default.LoadFromAssemblyPath).ToList();
var cfg = new ContainerConfiguration().WithAssemblies(asms, conventions);
using (var container = cfg.CreateContainer())
foreach (var module in container.GetExports<IModule>())
module.Register(registrar);
, если у кого-то есть самая туманная идея, почему это так, это было бы очень признательно.