Dynamics crm 2011 注册插件/工作流Dll时出错“;在指定的程序集中找不到插件类型;

Dynamics crm 2011 注册插件/工作流Dll时出错“;在指定的程序集中找不到插件类型;,dynamics-crm-2011,dynamics-crm,Dynamics Crm 2011,Dynamics Crm,我正在尝试在Prem上更新CRM 2011中的插件,插件注册工具返回以下警告: -2147204720 在指定的程序集中找不到插件类型。 2013-12-24T18:26:45.3112774Z -2147204720 在指定的程序集中找不到插件类型。 2013-12-24T18:26:45.3112774Z 有没有办法确定在指定程序集中找不到的插件类型是什么 编辑 确实反编译了microsoft dll。看起来我可以编写一个程序,给定两个dll,它将在一个dll中查找所有插件类型,并尝试在

我正在尝试在Prem上更新CRM 2011中的插件,插件注册工具返回以下警告:


-2147204720
在指定的程序集中找不到插件类型。
2013-12-24T18:26:45.3112774Z
-2147204720
在指定的程序集中找不到插件类型。
2013-12-24T18:26:45.3112774Z
有没有办法确定在指定程序集中找不到的插件类型是什么

编辑 确实反编译了microsoft dll。看起来我可以编写一个程序,给定两个dll,它将在一个dll中查找所有插件类型,并尝试在另一个dll中加载它们。通过适当的错误处理,我将能够找出缺少的类型

内部类型GetPluginTypeType(PluginAssembly父程序集,PluginType类型实体)
{
int num=(int)((BusinessEntity)parentAssembly.get_项(“sourcetype”);
装配;
如果(num==0)
{
if(((BusinessEntity)parentAssembly.isAttributeFull(“内容”))
抛出新的CRMEException(“程序集内容不应为null或空。”,-2147204719);
assembly=PluginAssemblyFactory.LoadAssembly(Convert.FromBase64String((string)((BusinessEntity)parentAssembly.get_项(“内容”));
}
else if(num==1)
assembly=PluginAssemblyFactory.LoadAssembly((字符串)((业务实体)parentAssembly.get_项(“路径”);
else if(num==2)
assembly=assembly.Load(PluginAssemblyFactory.FormatAssemblyName((string)((BusinessEntity)parentAssembly).获取_项(“名称”)、新版本((string)((BusinessEntity)parentAssembly).获取_项(“版本”)、(string)((BusinessEntity)parentAssembly).获取_项(“publickeytoken”),CacheSolutionHelper.GetCustomizationLevel((IBusinessEntity)parentAssembly)==0);
其他的
抛出新的CRMEException(string.Format((IFormatProvider)CultureInfo.InvariantCulture,“未知源类型{0}.”,新对象[1]
{
(对象)num
}), -2147200995);
如果(程序集==(程序集)为空)
抛出新的CRMEException(“无法加载程序集。”,-2147204719);
Type Type=assembly.GetType((string)((BusinessEntity)typeEntity.get_项(“typename”);
如果(类型==(类型)为空)
抛出新的CRMEException(“在指定的程序集中找不到插件类型。”,-2147204720);
其他的
返回类型;
}

我找到的确定缺少哪一个插件的唯一方法是将“损坏的”插件程序集导入沙盒环境,在那里可以看到导入的内容。然后检查两者之间是否有差异。有时你会发现你重命名了某个东西,只是没有注意到


除此之外,检查GUID非常困难。

您是否更改了签名?@GuidoPreite dll包含35个不同的工作流活动。我相信我没有更改任何签名(基类/名称/工作流参数)。我确实引用了一些新的DLL,但我已经将它们添加到gac中。要弄清楚什么样的插件类型被破坏真的那么难吗?