2015-05-14 4 views
0

Я ввел проект, в котором использовалась архитектура, в которой все классы полезности были сохранены в том же проекте, что и плагин. Это прекрасно, пока есть только несколько плагинов с различными утилитами.Как развернуть утилиту DLL, которая используется плагинами?

Я заметил, однако, что по мере роста числа плагинов многие из отдельных классов полезности перекрываются. Поэтому я хотел бы вытащить все утилиты в один отдельный проект. Мой страх в том, что это будет слишком сложно поддерживать, как только я покидаю клиента, поскольку они не технически увлечены.

Лучшее решение, которое я получил, это following this blog, способствующее ILMerge. Однако мне интересно, есть ли более простой способ. Оптимальным подходом было бы, если бы я мог заставить CRM «видеть» утилиту DLL, просто загрузив ее. Могу ли я каким-то образом зарегистрировать незапланированную, неисполняемую DLL-версию, к которой могут обратиться плагины?

ответ

2

Нет, если вы используете CRM Online, это не поддерживается.

Если вы работаете в CRM On-Premises, можете развернуть DLL-утилиты на диск или зарегистрировать их в GAC. В любом случае вам нужно следить за тем, чтобы они обновлялись на каждом сервере CRM - если их несколько.

+1

Итак, для CRM Online мои варианты: (1) ILMerge, (2) копия * Utils.cs * в каждом проекте плагина или (3) все плагины в одном проекте ... Я думаю, что я Перейдем к последнему варианту - не так много плагинов, и все будет сохранено в более жесткой структуре решения. +1 для ясности и быстрого ответа. –

+1

Я хожу туда и обратно между # 1 и # 3, как правило, с # 3 - за исключением больших проектов, где я иду с # 1. Я написал о более легком способе использования ILMerge (http://nicknow.net/dynamics- crm-ilmerge-dll-plugin /), но, похоже, требуется VS2013, поскольку кто-то сообщал о проблемах с VS2012. Он использует NuGet и использует соглашение, чтобы избежать необходимости создавать пакетные файлы или вручную изменять скрипты сборки. – Nicknow

 Смежные вопросы

  • Нет связанных вопросов^_^