Dynamics crm 2011 使用CRM 2013部署工具包后,CRM 2011出现错误

Dynamics crm 2011 使用CRM 2013部署工具包后,CRM 2011出现错误,dynamics-crm-2011,dynamics-crm-2013,Dynamics Crm 2011,Dynamics Crm 2013,我的公司正在升级到CRM 2013。我们有一台2013年的钻机和一台2011年的钻机。在此过程中,我已将我的Visual Studio实例更改为使用CRM 2013 SDK开发人员工具包 在这个过程中,我(愚蠢地)认为工具包将向后兼容,可以部署到2011年。或者至少抛出一个错误,让我降级工具包并继续。我错了。我尝试使用两个版本的工具包进行部署,但从前端服务器上的CRM日志中提取到相同的错误: System.IO.FileLoadException:无法加载文件或程序集 'Microsoft.Xr

我的公司正在升级到CRM 2013。我们有一台2013年的钻机和一台2011年的钻机。在此过程中,我已将我的Visual Studio实例更改为使用CRM 2013 SDK开发人员工具包

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

System.IO.FileLoadException:无法加载文件或程序集 'Microsoft.Xrm.Sdk,版本=6.0.0.0,区域性=中性, PublicKeyToken=31bf3856ad364e35'或其依赖项之一。这个 定位程序集的清单定义与程序集不匹配 参考(HRESULT的异常:0x8013100)文件名: 'Microsoft.Xrm.Sdk,版本=6.0.0.0,区域性=中性, PublicKeyToken=31bf3856ad364e35'在 System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly, 字符串名称,布尔throwOnError,布尔ignoreCase, ObjectHandLeon(堆栈类型)位于 System.Reflection.RuntimeAssembly.GetType(字符串名称,布尔值 throwOnError,Boolean ignoreCase)位于 Microsoft.Crm.Extensibility.PluginTypeFactory.LoadType(字符串 限定类型名称(程序集)

它正在寻找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开发者工具包不知何故损坏了2011前端服务器

找到了问题:

所讨论的插件依赖于另一个程序集,它是我们代码库的一部分,使用Microsoft.Xrm.Sdk.dll,并添加到CRM框的GAC中。该组件与2013年SDK一起构建,并在早些时候部署到GAC。这就是导致部署失败的原因

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

还是要被警告。。2013 SDK开发者工具包与2011部署不向后兼容。它将假定使用2013年的DLL