注册插件和/或工作流程时出错。插件程序集不包含所需类型或程序集内容无法更新

c# c#-4.0 dynamics-crm dynamics-crm-2011

33616 观看

15回复

473 作者的声誉

我使用CRM 2011 Developer Toolkit在Visual Studio 2010中实现了一个自定义工作流。它与系统生成的命名空间一起工作正常。但是,当我更改项目的命名空间时,它会抛出错误“注册插件和/或工作流程时出错。插件程序集不包含所需的类型或程序集内容无法更新。” 在部署时。我已经更改了.crmregister文件,项目属性和源代码中的命名空间。然后是这里的问题。

作者: Charan Raju C R 的来源 发布者: 2012 年 2 月 14 日

回应 (15)


1

2148 作者的声誉

尝试更改程序集版本。

作者: paramosh 发布者: 14.02.2012 01:43

1

2753 作者的声誉

您是否引用任何其他程序集(如Microsoft.Xrm.Sdk)?如果是这样,如果要部署到数据库,则需要使用ILMerge之类的工具进行合并。如果要部署到磁盘,则还需要它们存在于汇编文件夹中或安装在GAC中。

作者: Jason Lattimer 发布者: 14.02.2012 02:00

0

3568 作者的声誉

取消注册插件,然后再次注册。

作者: Anwar 发布者: 14.02.2012 06:37

1

11 作者的声誉

您可能需要检查组织中是否存在具有相同名称的插件作为已注册的插件。取消注册插件并重新注册程序集和步骤。

作者: Nithin Paul 发布者: 27.03.2012 05:22

1

2120 作者的声誉

如果您有一些自动生成的类,例如您通过右键单击Create Plug-in创建的插件,然后您已将其删除,则必须清除它在RegisterFile.crmregister中的跟踪。如果它是一个插件,你需要用它的名字删除整个分支。

作者: Arthur 发布者: 10.04.2012 08:46

11

325 作者的声誉

决定

如果您通过CRM开发工具包和包来部署您的客户工作流,然后在此之后如果您更改了任何类名或命名空间,则必须手动更改RegisterFile.crmregister文件,因为Visual Studio不会为您执行此操作。因此,如果您将类名从A更改为B而名称空间从N更改为M,那么RegisterFile.crmregister文件中以下xml中的'TypeName'必须如下所示:

 <?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>
作者: patricgh 发布者: 28.05.2012 12:44

7

20393 作者的声誉

我在使用CRM工具包时遇到了完全相同的问题。

这就是我解决问题的方法:

  1. 转到CRM中的设置/解决方案/ Yoursolution
  2. 删除与插件程序集相关的SDK消息处理条目
  3. 从解决方案中删除插件程序集本身
  4. 返回Visual Studio和Deploy

我没有必要手动编辑任何东西。

作者: Alex 发布者: 02.08.2012 02:40

1

11 作者的声誉

如果您更改/重构插件的主类名,就会发生这种情况。(例如,当代码分析抱怨您有拼写错误并且您修复它时)此问题仅在您下次部署时出现

所以,如果你已经掌握了插件类的名称......

  1. 在默认CRM解决方案中从“插件组件”中删除您的插件
  2. 查看插件的RegisterFile.crmregister文件。在XML标记上,您将看到3个对您的类名称的引用 - 其中一些可能尚未更新。
  3. 更新此文件中的名称并重新部署。

完成。

(好的只是注意到Masoud Ghabachi在很久以前就提到了......)

作者: Phil 发布者: 11.09.2012 10:03

0

1328 作者的声誉

除上述情况外,请检查.snk文件或.pfx文件。它在第二次部署中是否会发生变化

在这种情况下尝试使用旧的源代码,否则您需要重新注册插件/工作流程。

作者: M2012 发布者: 20.11.2012 05:58

0

3385 作者的声誉

确保您的插件/工作流类是公共类。

我得到了同样的错误,因为我的插件类是私有的。

作者: Scorpion 发布者: 08.07.2013 03:55

0

1 作者的声誉

检查RegisterFile.crmregister工作流属性TypeName不能包含任何空格。

作者: Andrius Cyvas 发布者: 21.11.2013 03:42

0

1 作者的声誉

我更改了签名密钥文件并得到了错误,将其更改回上一个密钥文件为我解决了问题。

作者: Lily Shita 发布者: 08.01.2015 01:36

0

2633 作者的声誉

您的版本必须与已经为升级发布的版本相同。我们有一个主要版本的1个主要版本,0个未成年人 - 我们试图发布的版本是12个主要版本,0个未成年人版本。

我们将Visual Studio解决方案编号更改回版本1.0.0.0,构建,加载程序集,更新 - 它工作正常!

如果使用工作流,则删除它不会解决问题。

我们切换了Tracing On并找到了SQL脚本来找到罪魁祸首。

作者: riaandl 发布者: 27.02.2015 02:21

0

1 作者的声誉

当preImage元素放在寄存器中的postImage元素之后时,我得到了这个。交换他们的地方修复它。

作者: mswaim 发布者: 12.06.2015 12:56

8

303 作者的声誉

在我们的情况下,我们使用ILMerge并且意外地将我们合并Microsoft.Xrm.Sdk.dll到我们的插件中,删除此dll(副本local = false)修复了该问题。

这个合并的dll无论如何都没有工作,因为它抛出安全异常

重写成员时违反了继承安全规则:'Microsoft.IdentityModel.Claims.ClaimsIdentity.System.Runtime.Serialization.ISerializeable.GetObjectData

此GetObjectData存在于Microsoft.Xrm.Sdk.dll中,因此SandBox部署中存在安全性异常。

作者: Serge 发布者: 19.05.2016 05:45
32x32