Я использую MEF (System.ComponentModel.Composition) CompositionContainer в Visual Studio 2017 с .net 4.5.1 для загрузки некоторых классов из dll из каталога X.
_catalogs = new AggregateCatalog();
var dir = new DirectoryCatalog("X", "*.dll");
compositionContainer = new CompositionContainer(_catalogs, true);
compositionContainer.ComposeParts();
IЯ могу получить доступ к тому, что мне нужно без проблем.В какой-то момент я удаляю каталог из композиции:
_catalogs.Catalogs.Remove(_catalogs.Catalogs.First());
Это работает, и после этого у меня нет экземпляра моей dll в CompositionContainer или AggregateCatalog.
Myпроблемы в том, что теперь, если мое приложение все еще открыто, я не могу удалить каталог «X», переместить или переименовать его.Я получаю сообщение «Доступ к пути запрещен» из кода или из Проводника.
Кто-нибудь знает, что может привести к тому, что каталог все еще будет присоединен к CompositionContainer даже после его удаления?Или я удаляю это неправильно?
Спасибо.