2

我已经被这个异常困住了两天。我正在使用 MS CRM 2011,当我尝试注册 CRM 自定义工作流活动程序集 1. 通过 pluginregistrator 工具 2. 或者当我通过 Visual Studio 中的包项目部署插件并运行工作流之后,我得到了这个异常,并且它以等待状态停止,在详细信息页面中给出此异常。这是详细的例外情况:

工作流程因错误而暂停:未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.Xrm.Client,版本=5.0.9688.1154,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。在 ArmenianSoftware.Crm.Spayka.ArmsoftIntegration.Workflows.CreateWorksByPlan.Execute(CodeActivityContext executionContext) 在 System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) 在 System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

我正在文件系统上注册程序集,我已在文件夹 %system root%\C$\Program Files\Microsoft Dynamics CRM\Server\bin\assembly 中加载了所有需要的程序集。这个工作流工作了一段时间,但是在我不知道是什么之后,下次我部署程序集时,我在执行工作流时遇到了这个异常。这已经是我第三次遇到这个问题了,花了几个小时尝试做不同的事情(IIS 重置、异步服务重新启动、再次重新加载所有程序集并重新部署),几个小时后,以一种神秘的方式,工作流开始工作。在此工作一段时间后,在重新部署后再次崩溃。而且我无法确定解决问题的确切步骤,因此我总是花费几个小时来找出异常源,但没有任何目的。thread1 , thread2 , thread3 ) 有人遇到过这个问题吗?这个异常的原因是什么?提前致谢!

4

1 回答 1

6

我发现了我的问题!

我注意到的第一件事是,在异常中所需的 Microsoft.Xrm.Client 程序集版本是 5.0.9688.1154,但在我的项目中,我引用了 5.0.9689.1985 版本的程序集。

在此处输入图像描述

接下来是打开的 ildasm 工具,看看它有什么引用,我打开了我的自定义工作流程序集,我发现我有两个对 Microsoft.Xrm.Client 的引用,第一个是版本 5.0.9688.1154,另一个是第二:5.0.9689.1985 在此处输入图像描述

并且出现了一个问题“如果我引用了一个版本为 5.0.9689.1985 的程序集,为什么还有这个程序集的另一个版本?”。答案肯定是我有另一个引用的程序集,它引用了版本为 5.0.9688.1154 的 Microsoft.Xrm.Client 程序集。我查看了我在项目中引用的程序集。还有问题!在我的项目中,我已将 SDK 组件更新为较新版本,但我还生成了引用 Microsoft.Xrm.Client 的 CRM 组织代理类组件,并且我尚未将此引用更新为较新版本的 CRM SDK。所以我的自定义工作流程序集也需要这个版本。我将 Proxy dll 的引用更改为较新的版本,一切正常!如果您正在阅读这篇文章,并且您没有代理程序集,

问候

加吉克·库尔克琴

于 2012-05-23T10:33:47.670 回答