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)
在我们的例子中,我们使用了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部署的安全性异常.
我在使用CRM工具包时遇到了完全相同的问题.
这就是我解决问题的方法:
我没有必要手动编辑任何东西.