Ошибка регистрации плагинов и / или рабочих процессов. Сборка плагина не содержит требуемых типов, или содержимое сборки не может быть обновлено - PullRequest
9 голосов
/ 14 февраля 2012

Я реализовал один пользовательский рабочий процесс в Visual Studio 2010, используя CRM 2011 Developer Toolkit.Это работало нормально с сгенерированным системой пространством имен.Но когда я изменил пространство имен своего проекта, он выдает ошибку «Ошибка регистрации плагинов и / или рабочих процессов. Сборка модуля не содержит требуемых типов, или содержимое сборки не может быть обновлено». при развертыванииЭто.И я изменил пространство имен в файле .crmregister, свойствах проекта и в исходном коде.Тогда в чем здесь проблема?

Ответы [ 15 ]

11 голосов
/ 28 мая 2012

Если вы развертываете свои обычные рабочие процессы с помощью набора инструментов и пакета разработки CRM, а затем после этого, если вы изменили какое-либо имя класса или пространство имен, вы должны вручную изменить файл RegisterFile.crmregister, поскольку Visual Studio этого не делает. Поэтому, если вы измените имя вашего класса с A на B и ваше пространство имен с N на M, тогда «TypeName» из приведенного ниже файла xml в файле RegisterFile.crmregister должно выглядеть следующим образом:

 <?xml version="1.0" encoding="utf-8"?>
<Register xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/crm/2011/tools/pluginregistration">
  <Solutions>
    <Solution Assembly="PackageECRProcesses.CleanRegistration.dll" Id="ab72673b-c0a8-e111-af82-080027dd322f" IsolationMode="None" SourceType="Database">
      <WorkflowTypes>
        <WorkflowType FriendlyName="any" Name="any" Description="any." WorkflowActivityGroupName="account" Id="f0e3f436-c1a8-e111-af82-080027dd322f" TypeName="M.B" />
      </WorkflowTypes>
    </Solution>
  </Solutions>
  <XamlWorkflows />
</Register>
8 голосов
/ 19 мая 2016

В нашем случае мы использовали ILMerge и случайно слили Microsoft.Xrm.Sdk.dll в наш плагин, удалив эту dll (копию local = false), чтобы устранить проблему.

Эта объединенная dll все равно не работала, поскольку генерировала исключение безопасности

Нарушение правил безопасности наследования при переопределении члена: 'Microsoft.IdentityModel.Claims.ClaimsIdentity.System.Runtime.Serialization.ISerializeable.GetObjectData

этот GetObjectData присутствовал в Microsoft.Xrm.Sdk.dll, следовательно, исключение безопасности из развертывания SandBox.

7 голосов
/ 02 августа 2012

Я только что столкнулся с точно такой же проблемой, когда играл в CRM Toolkit.

Вот как я решил проблему:

  1. Зайдите в Настройки / Решения / Yoursolution in CRM
  2. Удалить записи обработки сообщений SDK, относящиеся к сборке плагина
  3. Удалить саму сборку плагина из решения
  4. Вернитесь в Visual Studio и разверните

Мне не нужно было ничего редактировать вручную.

1 голос
/ 12 сентября 2012

Это может произойти, если вы измените / реорганизуете имя основного класса вашего плагина.(например, когда анализ кода жалуется, что у вас есть орфографическая ошибка, и вы ее исправляете) Эта проблема появится только в следующий раз, когда вы выполните развертывание

Так что, если вы изменили имя своего класса плагина ...

  1. В CRM-решении по умолчанию удалите ваш плагин из «Сборок плагинов»
  2. Просмотрите файл RegisterFile.crmregister вашего плагина.в теге XML вы увидите 3 ссылки на имя вашего класса - некоторые из них, возможно, не были обновлены.
  3. обновите имена в этом файле и повторно разверните.

done.

(хорошо, только что заметил, что Масуд Габати упомянул об этом много лет назад ...)

1 голос
/ 10 апреля 2012

Если у вас было несколько автоматически сгенерированных классов, например, Плагины, которые вы создали с помощью правого клика Создать плагин, а затем удалили его, вы должны очистить его следы в RegisterFile.crmregister. Если это был плагин, вам нужно удалить целую ветку с ее именем.

1 голос
/ 27 марта 2012

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

1 голос
/ 14 февраля 2012

Вы ссылаетесь на какие-либо другие сборки (например, Microsoft.Xrm.Sdk)?Если это так, их необходимо объединить с помощью такого инструмента, как ILMerge , если вы развертываете базу данных.Если вы развертываете на диск, они также должны присутствовать в папке сборки или быть установлены в GAC.

1 голос
/ 14 февраля 2012

Попробуйте изменить версию сборки.

0 голосов
/ 12 июня 2015

Я получил это, когда элемент preImage был помещен после элемента postImage в регистре. Обмен местами исправил это.

0 голосов
/ 27 февраля 2015

Ваша версия должна совпадать с той, которая была опубликована для обновления. У нас была версия ассемблера: 1 мажорная, 0 второстепенная - и мы попытались опубликовать 12 основных, 0 второстепенных.

Мы изменили номер решения Visual Studio обратно на версию 1.0.0.0, Сборка, Загрузка сборки, Обновление - и это сработало!

Удаление его НЕ решит проблему из-за зависимостей от рабочих процессов, если они были использованы.

Мы включили трассировку и нашли сценарий SQL, чтобы найти виновника.

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