У меня проблема с тем, что MEF не экспортирует плагин, по-видимому, только при установке в c: \ Program Files (x86).
Я реализую довольно простую систему плагинов MEF для службы Windows.
Экспорт для TestService.dll (плагин)
[Export(typeof(IScheduledService))]
public class Service: IScheduledService
{ ... }
Импорт
public class ScheduledServices: IEnumerable<IScheduledService>
{
[ImportMany(typeof(IScheduledService))]
private List<IScheduledService> _services { get; set; }
...
}
Состав
var catalog = new DirectoryCatalog(PluginDirectory);
var container = new CompositionContainer(catalog);
container.ComposeParts(pluginCollection);
Это отлично работает в тестах и запускается через формы Windows и т. Д. Оно работает даже при установке в качестве службы с помощью «InstallUtil». Однако, когда он свернут в установку Windows и установлен в C: \ Program Files (x86), он не запускает экспорт;
System.ComponentModel.Composition Information: 6 : The ComposablePartDefinition
'TestService.Service' was ignored because it contains no exports.
Я думаю, это должно быть связано с каким-то CAS / Permissions?
Любая помощь приветствуется!