使用Deployment Toolkit for CRM 2013后,CRM 2011出现错误

时间:2014-08-06 14:35:48

标签: dynamics-crm-2011 dynamics-crm-2013

我的公司正在升级到CRM 2013.我们拥有2013钻机和2011钻机。在此过程中,我已将Visual Studio实例更改为使用CRM 2013 SDK Developer Toolkit。

在此过程中,我(愚蠢地)认为该工具包将向后兼容部署到2011年。或者至少抛出一个错误,让我降级我的工具包并继续。我错了。我尝试使用两个版本的工具包进行部署,并从前端服务器上的CRM日志中提取相同的错误:

  

System.IO.FileLoadException:无法加载文件或程序集   ' Microsoft.Xrm.Sdk,Version = 6.0.0.0,Culture = neutral,   公钥= 31bf3856ad364e35'或其中一个依赖项。该   定位程序集的清单定义与程序集不匹配   参考。 (来自HRESULT的异常:0x80131040)文件名:   ' Microsoft.Xrm.Sdk,Version = 6.0.0.0,Culture = neutral,   公钥= 31bf3856ad364e35'在   System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly,   String name,Boolean throwOnError,Boolean ignoreCase,   ObjectHandleOnStack类型)at   System.Reflection.RuntimeAssembly.GetType(String name,Boolean   throwOnError,Boolean ignoreCase)at   Microsoft.Crm.Extensibility.PluginTypeFactory.LoadType(字符串   qualifiedTypeName,Assembly assembly)

它正在寻找Microsoft.Xrm.Sdk.dll的版本6.0.0.0(2013)!

  • 我已经检查了项目中的项目引用 - 都指向版本5.x
  • 我已经为我的代码库中的所有Microsoft.Xrm.Sdk.dll文件做了准备 - 都是版本5.x
  • 我已经检查了前端框中的web.config - 所有crm dll引用都是5.x
  • 我检查了前端框中的所有* .config文件 - 没有提及版本6.0.0.0

我可以通过将版本6.0.0.0添加到GAC来部署它,但随后该插件失败(不出所料)说它无法将我的插件转换为Microsot.Xrm.Sdk.IPlugin类型。

我们正在构建另一个前端服务器以查看它是否有效(我怀疑它应该如此)。有没有更简单的方法来解决这个问题?看起来2013 Developer Toolkit已经以某种方式破坏了2011前端服务器。

1 个答案:

答案 0 :(得分:0)

发现问题:

有问题的插件依赖于作为我们代码库一部分的另一个程序集,使用Microsoft.Xrm.Sdk.dll并添加到CRM框的GAC中。此程序集使用2013 SDK构建,并在之前部署到GAC。这是导致部署失败的原因。

解决方案:使用2011 dll重建此程序集和插件,然后重新安装到GAC,然后重新部署到插件。

请注意.. 2013 SDK开发人员工具包不向后兼容2011部署。它将假定使用2013 DLL。