Разработка
04
Окт
0

Версионность сборок в CRM

В CRM 2011 появилась возможность управлять версиями сборок плагинов и Бизнес-процессов. Для этого, когда создаете сборку в свойствах проекта (в Assembly Information) можете назначить ей номер версии в формате Major.Minor.Build.Revision. Далее возможны два сценария:

Обновление сборки

Этот сценарий подойдет, если Вы произвели со сборкой одно из двух действий:

  • Исправление ошибок;
  • Незначительные изменения логике работы сборки.

Т.е. сборка является более-менее совместимой с существующими сборками и не нуждается в перенастройке.

Чтобы обновить сборку измените в ней номер Build/Revision, но оставьте неизменными номера Major/Minor (а также имя сборки). Далее перекомпилируете ее и обновляете в CRM с помощью Plugin Registration Tool. Новое содержимое сборки сразу вступает в силу и все существующие шаги плагинов и Бизнес-процессы автоматически начнут ее использовать без дополнительной конфигурации. В общем подход ничем принципиально новым от предыдущих схем обновления плагинов и БП не отличается…


Изменение сборки

Сценарий изменения может использоваться, когда необходимо зарегистрировать новую сборку и при этом сохранить работоспособность старой версии. Обычно используется в следующих случаях:

  • Добавление параметров ввода/вывода к Бизнес-процессам;
  • Изменение подписи плагинов;
  • Изменения бизнес логики в плагинах так, что это делает их не совместимыми с предыдущими версиями.

Чтобы задействовать сценарий изменения, Вам нужно изменить в сборке номер Major/Minor (имена должны по прежнему совпадать) и заново зарегистрировать сборку в CRM (параллельно существующей). После этого:

  • Для плагинов: вручную создать все шаги/снимки для новой сборки;
  • Для Бизнес-процессов: а вот с ними все гораздо интереснее… теперь при настройке каждого кастомного шага Бизнес-процесса Вы можете номер версии, которую хотите использовать в каждом конкретном случаи. При этом существующие экземпляры Бизнес-процесса будут продолжать использовать старую версию сборки.



Комментарии (0)

*

code