【问题标题】:Error on CRM 2011 after using Deployment Toolkit for CRM 2013使用 CRM 2013 部署工具包后 CRM 2011 出现错误
【发布时间】:2014-09-29 13:18:38
【问题描述】:

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

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

System.IO.FileLoadException:无法加载文件或程序集 'Microsoft.Xrm.Sdk,版本=6.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。这 定位程序集的清单定义与程序集不匹配 参考。 (HRESULT 例外:0x80131040)文件名: 'Microsoft.Xrm.Sdk,版本=6.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 在 System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly 程序集, 字符串名称,布尔型 throwOnError,布尔型 ignoreCase, ObjectHandleOnStack 类型)在 System.Reflection.RuntimeAssembly.GetType(字符串名称,布尔值 throwOnError,布尔忽略大小写)在 Microsoft.Crm.Extensibility.PluginTypeFactory.LoadType(字符串 qualifiedTypeName,程序集程序集)

它正在寻找 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 前端服务器。

【问题讨论】:

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


    【解决方案1】:

    发现问题:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多