C # плагин дизайн системы - PullRequest
       5

C # плагин дизайн системы

1 голос
/ 25 октября 2010

Итак, я создаю систему плагинов для моего приложения.

У меня есть следующие компоненты: 1) Основное приложение 2) PluginInterface.dll 3) Плагин (ы) .dll

Проблема в том, что когда я создаю свои плагины и компилирую их, существует больше, чем просто файл Plugin.dll.У него есть другие необходимые файлы в каталоге Release, такие как PluginInterface.dll, который он использует, файл конфигурации xml и т. Д.

Так как я могу сделать так, чтобы это был только один dll-файл, который пользователь можетзайти в каталог плагинов?

ИЛИ

Как вы думаете, лучше ли плагины быть папкой?Затем я должен сканировать все папки для правильной DLL ...

Ответы [ 3 ]

9 голосов
/ 25 октября 2010

Managed Extensibility Framework разработан для плагиновых архитектур. Прежде чем идти слишком далеко по вашему текущему пути, проверьте его. Это может послужить вам лучше.

0 голосов
/ 25 октября 2010

Если вы хотите сделать это при компиляции вашего решения, вы должны создать событие после сборки (Project Properties -> Build Events), чтобы скопировать только необходимые файлы в каталог плагина. Вы также можете изменить OutputPath вашего проекта и использовать опцию «Copy Local» на «false», но у вас не будет такого же уровня контроля, как при создании события сборки.

0 голосов
/ 25 октября 2010

Когда вы компилируете свой проект подключаемого модуля, щелкните правой кнопкой мыши ссылки на библиотеки DLL, которые вы видите, и выберите свойства.В свойствах установите для свойства «Копировать локальный» значение «false».Убедитесь, что эти библиотеки DLL являются частью вашего основного приложения, в противном случае код завершится ошибкой, если не сможет найти код, который от него зависит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...