В расширении Visual Studio я пытаюсь экспортировать компонент MEF и находить его позже.Компонент MEF с [Экспорт] в расширении VS - экспорт не найден, который соответствует ограничению
У меня есть этот класс:
[Export(typeof(IBoilerplateSettings))]
public class BoilerplateSettings : IBoilerplateSettings
{
...
И этот код, чтобы разрешить в функции обратного вызова из OleMenuCommand. Получил пример от this pull request.
var componentModel = (IComponentModel)this.package.GetService(typeof(SComponentModel));
var settings = componentModel.DefaultExportProvider.GetExportedValue<IBoilerplateSettings>();
Но он бросает эту ошибку каждый раз, когда:
No exports were found that match the constraint:
ContractName UnitTestBoilerplate.IBoilerplateSettings
RequiredTypeIdentity UnitTestBoilerplate.IBoilerplateSettings
Оба находятся в одной сборке. Я пробовал атрибут [Export]
как в System.Composition
, так и в System.ComponentModel.Composition
, но не работает.
Я смотрю the docs for MEF in VS, но похоже, что добавление атрибута должно просто работать. Я также попытался очистить кеш ComponentModel, но это не сработало. Что мне здесь не хватает?
Я попытался добавить ' 'под Активы, но это, похоже, не помогло. Файл .err равен 0 байтам. –
RandomEngy
И просто проверка: если у вас есть несколько проектов, поставленных в том же .vsix, вы публикуете там правильный проект? В противном случае да, это выглядит правильно ... –
В .vsix есть только один проект. – RandomEngy