У меня проблемы с MEF, когда у меня есть DirectoryCatalog, и на более позднем этапе я хочу перезаписать сборку и "обновить" каталог.
Проблема, с которой я сталкиваюсь, заключается в том, что файл просто «используется», и я не могу перезаписать файл. Обычно вы можете перезаписать сборку .Net.
Я предполагаю, что MEF использует его, но как это соотносится с перекомпиляцией?!
Вот мой пример кода. Даже с локальными переменными файл все еще используется.
Я также пытался разместить сборку в папке приложения и плагина, но затем используется версия папки приложения, поэтому перезапись не имеет значения.
public RecompilationExample()
{
DirectoryInfo dir = new DirectoryInfo(".\\plugin");
if (!dir.Exists)
dir.Create();
DirectoryCatalog d;
CompositionContainer c;
d = new DirectoryCatalog(".\\plugin");
d.Changed += new EventHandler<ComposablePartCatalogChangeEventArgs>(d_Changed);
c = new CompositionContainer(d);
c.ExportsChanged += new EventHandler<ExportsChangeEventArgs>(c_ExportsChanged);
c.ComposeParts(this);
}