【问题标题】:Microsoft Dynamics CRM - Plugin Running in Context of .NET 4.0Microsoft Dynamics CRM - 在 .NET 4.0 的上下文中运行的插件
【发布时间】:2015-01-24 05:21:43
【问题描述】:

我为 Microsoft Dynamics CRM 2011 编写了一个插件。它与由不同承包商针对不同版本的 .NET 编写的大量其他插件一起运行。

我的插件面向 .NET 4.5。我最近在 CRM Web 服务器上安装了 .NET 4.5。如果用户导致我的插件触发(Create/Update of account),插件运行良好,没有任何问题。

但是,当更新来自不同的插件时,会抛出以下错误:

Method not found: 'System.Delegate System.Reflection.MethodInfo.CreateDelegate(System.Type)'

我们从承包商那里收到的报告错误的有限堆栈跟踪表明它发生在我的插件中。我正在使用 Ninject,我认为这可能是罪魁祸首。我猜想我的插件是在不存在此方法的 .NET 4.0 环境中运行的。

我对 CRM 运行插件的方式不是很熟悉。在 Web 服务器之外,我是否需要在任何其他机器上安装 .NET 4.5?这可能与间接调用我的 .NET 4.5 插件的 .NET 4.0 插件有关吗?

【问题讨论】:

  • 可以(取决于您使用的 Ninject 版本,我假设为 .NET 4.5)目标全部为 4.0(您的插件和 Ninject 版本)

标签: plugins dynamics-crm-2011


【解决方案1】:

即使是 crm-2013 Microsoft says that you should use .net 4.0。当您说这是插件中 4.0 和 4.5 之间的交互时,我认为您是对的。你能在 4.0 上构建你的项目吗?试一试,看看会发生什么。

【讨论】:

  • 你能告诉我微软在哪里说你应该使用 .net 4.0 吗? .NET 4.5 得到 CRM 2013 的全面支持
  • 我的错,他们只是删除了对自定义工作流程的支持...mscrmthoughts.com/2014/03/26/…
【解决方案2】:

在与公司讨论他们的 CRM 设置后,他们解释说有两台服务器专门用于运行异步插件。 Microsoft Dynamics CRM 似乎总是在启动更新的任何服务器上运行插件。通常,这将是 Web 服务器,因为更新是由 IIS 启动的。但是,在这种情况下,那将是异步服务器。我只需在这两台服务器上安装 .NET 4.5,问题就消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-22
    • 1970-01-01
    相关资源
    最近更新 更多