插件不参与CRM 2011的参考

我创建了一个插件,并使用了对我创建的另一个项目(DLL)的引用。 问题是当我尝试运行插件时,我收到CRM错误说:

无法加载文件或程序集“XXX,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = a760feb9ec7271a9”或其中一个依赖项。 该系统找不到指定的文件。

有没有人有任何想法解决这个问题?

您必须将引用的程序集部署到GAC或将其与您的部署合并(使用ILMerge)

另请参阅http://msdn.microsoft.com/en-us/library/gg309620.aspx并创建单个CRM插件DLL以存储在CRM数据库中

我在这里有一篇博客文章,介绍如何在没有 ILMerge的情况下将其全部放入1个DLL中: CRM2011插件中的所有引用 。 自从我们开始这样做以来,我们还没有一个dll问题。

注意,这种方法排除了沙盒模式的使用(即,如果您需要插件在Dynamics CRM Online中工作,则无法使用此方法)。

我们在过去的6个月中曾多次出现过这种错误,每次,尽管我或其他开发人员发誓失败,但事实并非如此,它已经certificate是DLL版本的问题。

您是否将插件安装到磁盘,数据库或GAC?

如果安装到GAC,我相信外部DLL也会进入GAC。 如果安装到数据库或磁盘,我相信DLL会进入\ assembly \ bin文件夹。

有时反病毒会阻止ASP.NET访问文件或程序集,我建议您尝试使用强名称对程序集进行签名并将其添加到GAC:在这里您可以找到更多信息http://support.microsoft.com/kb / 815808