【问题标题】:Are Microsoft Dynamics CRM 2011 Workflow plugins compatible with CRM 2016Microsoft Dynamics CRM 2011 工作流插件是否与 CRM 2016 兼容
【发布时间】:2016-03-24 03:48:10
【问题描述】:

我们正在测试从当前的 crm 2011 系统升级到 2016 的过程。我们所有的插件似乎都按预期工作,无需重新编译。它们都已注册并存储在数据库中。插件和工作流程序集都引用了一个使用 CRM 2011 sdk 引用构建的自定义库。该库已部署到 crm 2016 服务器。当我们在其中一个步骤中运行执行自定义活动的工作流时,我们会收到以下错误:

无法加载文件或程序集“Microsoft.Crm.Workflow, Version=5.0.0.0' 或其依赖项之一。位于的组件的 清单定义与程序集引用不匹配。 (例外 来自 HRESULT:0x80131040)

我知道错误消息表明它依赖于 Microsoft.Crm.Workflow 版本 5,并且当前可用的 dll 是版本 8。我不明白为什么插件成功执行而自定义工作流活动没有。我是否需要使用 2016 年的新 dll 引用重建我的插件程序集?

谢谢

【问题讨论】:

  • 您的插件程序集是否可能与 SDK dll 进行了 ILMerged,而您的工作流程序集却没有?
  • 不,我们根本不使用 ILMerge。

标签: dynamics-crm


【解决方案1】:

简短的回答是您很可能只需要针对最新的 CRM 2016 SDK 程序集重新编译(并随后重新注册)工作流项目。

据我所知,您正在扩展的插件和工作流执行方法没有兼容性或签名更改。这可以解释为什么您在注册新系统时不会收到任何错误。

推测你为什么会得到你的错误(我不能确定两者都是原因,但也许是):

  • 我想定义您正在扩展的工作流执行方法的 2011 SDK DLL 正在后台加载其他 CRM 系统 DLL,这些 DLL 要么不再存在,要么已被不具有相同兼容性的新版本替换.换句话说 - 您正在编译的方法的签名是相同的并且与 CRM 2016 兼容,但是它的依赖项(可能在运行时加载)不再有效。
  • 如果您使用的是在 GAC 中注册的库,如果此库是针对 2011 DLL 编译的,请针对 2016 版本重新编译,然后在服务器上重新注册。

【讨论】:

  • 谢谢 Jason,我忘了说插件和工作流插件都使用一个通用的自定义库。该库是使用 2011 sdk 参考构建的。我发现插件有效但工作流程序集无效,这很奇怪。我已经更新了我的帖子,并将仔细检查部署。另外,我已经检查过了,GAC 中没有任何内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-22
  • 1970-01-01
相关资源
最近更新 更多