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

Cha*_*C R 9 c# dynamics-crm c#-4.0 dynamics-crm-2011

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

pat*_*cgh 11

如果您通过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>
Run Code Online (Sandbox Code Playgroud)


Ser*_*rge 8

在我们的例子中,我们使用了ILMerge,并且我们不小心将Microsoft.Xrm.Sdk.dll合并到了我们的插件中,删除了这个dll(copy local = false)修复了这个问题.

这个合并的dll无论如何都没有工作,因为它抛出了安全异常,在覆盖成员时违反了继承安全规则:'Microsoft.IdentityModel.Claims.ClaimsIdentity.System.Runtime.Serialization.ISerializeable.GetObjectData此GetObjectData存在于Microsoft.Xrm.Sdk.dll中因此SandBox部署的安全性异常.


Ale*_*lex 7

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

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

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

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