我为Microsoft Dynamics CRM 2011编写了一个插件。它与不同承包商针对不同版本的.NET编写的一堆其他插件一起运行。
我的插件面向.NET 4.5。我最近在CRM Web服务器上安装了.NET 4.5。如果用户导致我的插件触发Create
/ Update
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插件有关吗?
答案 0 :(得分:0)
即使是crm-2013 Microsoft says that you should use .net 4.0。当你说你的插件中的4.0和4.5之间的交互时,我认为你是正确的。你能在4.0上建立你的项目吗?试一试,看看会发生什么。
答案 1 :(得分:0)
在与公司讨论他们的CRM设置后,他们解释说有两台服务器专门用于运行异步插件。似乎Microsoft Dynamics CRM始终在启动更新的任何服务器上运行插件。通常,这将是Web服务器,因为更新是由IIS启动的。但是,在这种情况下,那将是异步服务器。我只需要在这两台服务器上安装.NET 4.5,问题就消失了。