我已经坚持这个例外两天了。 我正在使用MS CRM 2011,当我尝试注册CRM自定义worklow活动程序集时遇到此异常 1.通过pluginregistrator工具, 2.或者当我在Visual Studio中部署插件程序包项目并运行工作流程后,它在等待状态下停止,在详细信息页面中给出了这个表示。以下是详细的例外情况:
由于错误导致工作流暂停:未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集'Microsoft.Xrm.Client,Version = 5.0.9688.1154,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。该系统找不到指定的文件。 at ArmenianSoftware.Crm.Spayka.ArmsoftIntegration.Workflows.CreateWorksByPlan.Execute(CodeActivityContext executionContext) 在System.Activities.CodeActivity.InternalExecute(ActivityInstance实例,ActivityExecutor执行器,BookmarkManager bookmarkManager) at 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) 有人遇到过这个问题吗?这个异常的原因是什么? 提前谢谢!
答案 0 :(得分:6)
我在我的案子中发现了问题!
我注意到的第一件事是在Exception中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程序集。我查看了我在项目中引用的程序集。还有GOTCHA!在我的项目中,我已将SDK组件更新为更新版本,但我还有生成的CRM组织代理类程序集,它引用了Microsoft.Xrm.Client,我还没有更新此引用到更新版本的CRM SDK。所以我的自定义工作流程组件也需要此版本。我将Proxy dll的引用更改为更新版本,一切正常! 如果您正在阅读这篇文章,并且您没有代理程序集,请检查其他程序集,如果它们都引用相同版本的CRM SDK,如果不正确的话!
问候
Gagik Kyurkchyan