Первое, что нужно сделать — создать проект. Для этого нажимаем правой кнопкой на решении ThinkingHome и выбираем пункт Add->New Project.
Любой плагин представляет собой библиотеку классов C#. Решения именуются следующим образом: ThinkingHome.Plugins.PluginName, где «PluginName» название разрабатываемого плагина. Названия плагинов должны быть уникальными.
Название плагина на картинке ниже — «NooUI».
Теперь нужно добавить в проект ссылку на библиотеку ThinkingHome.Core.Plugins, в которой содержатся базовые классы для плагинов. Самый простой способ сделать это — подключить ее через менеджер пакетов NuGet. Просто наберите в консоли менеджера пакетов:
Менеджер пакетов NuGet можно найти в меню TOOLS->Library Packege Manager-> Packege Manager Console
Важно убедиться в том, что выбран именно тот проект, с которым мы хотим работать.
После этого можно добавлять ссылку на необходимую библиотеку.
Install-Package ThinkingHome.Core.Plugins
Очень важно не забыть добавить ссылку на библиотеку System.ComponentModel.Composition (эта библиотека входит в .NET Framework и как раз в ней-то и содержится реализация MEF).
После этого нужно пометить класс плагина атрибутом [Plugin] и унаследовать его от базового плагина «PluginBase». После этого воспользуемся автоматическим подключением необходимых библиотек c#.
Внимание! Для всех ссылок на сторонние библиотеки нужно установить параметр Copy Local = False!