2016-03-24 4 views
0

Мы тестируем обновление с нашей нынешней системы crm 2011 до 2016 года. Все наши плагины работают как ожидалось без перекомпиляции. Все они были зарегистрированы и сохранены в базе данных. В сборке плагинов и рабочих процессов ссылайтесь на пользовательскую библиотеку, которая была построена с помощью ссылок на SQL Server CRM 2011. Эта библиотека была развернута на сервере crm 2016. При запуске рабочего процесса, который выполняет пользовательскую активность в одном из шагов мы получим следующее сообщение об ошибке:Плагины рабочего процесса Microsoft Dynamics CRM 2011, совместимые с CRM 2016

Could not load file or assembly 'Microsoft.Crm.Workflow, Version=5.0.0.0' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Я знаю, сообщение об ошибке указывает на то, что она зависит от Microsoft.Crm.Workflow версии 5 и библиотеки DLL текущего доступна версия 8. Что я не понимаю, почему плагины успешно выполняются, а пользовательские действия рабочего процесса этого не делают. Нужно ли мне перестраивать сборки плагинов с новыми ссылками dll на 2016 год?

благодаря

+0

Возможно ли, что ваш модуль плагина был подключен к SDK-карте SDK, а ваш рабочий процесс не был? – Polshgiant

+0

Нет, мы вообще не используем ILMerge. – noobie

ответ

1

короткий ответ вам, скорее всего, просто нужно перекомпилировать (и впоследствии перерегистрации) проект рабочего процесса против последней CRM 2016 SDK сборки.

Насколько я знаю, нет совместимости или изменений подписи в отношении методов расширения плагина и рабочего процесса, которые вы распространяете. Это объясняет, почему вы не получаете никаких ошибок при регистрации в новой системе.

Размышляя, почему вы получаете ошибку вы (я не могу быть уверен, что ни есть причина, но, возможно, оно и есть):

  • Я представляю SDK DLL 2011, который определяет выполнение рабочего процесса методы, которые вы распространяете, загружают другие DLL-системы CRM-системы в фоновом режиме, которые либо больше не существуют, либо заменены более новой версией, которая не имеет такой же совместимости. Другими словами - подпись метода, который вы компилируете, одинакова и совместима с CRM 2016, однако зависимости от него (которые, вероятно, загружаются во время выполнения), более недействительны.
  • Если вы используете библиотеку, зарегистрированную в GAC, если эта библиотека скомпилирована против библиотеки 2011 года, перекомпилируйте ее по версии 2016 и затем перерегистрируйте ее на сервере.
+0

Спасибо Джейсону, я забыл упомянуть, что как плагин, так и плагин рабочего потока используют общую настраиваемую библиотеку. Эта библиотека была построена с использованием ссылок на sdk 2011 года. Мне странно, что плагин работает, но не сборка рабочего процесса. Я обновил свой пост и дважды проверю развертывание. Кроме того, я проверил, в GAC ничего нет. – noobie

+0

Сработала сборка рабочего процесса. благодаря – noobie

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