CRM无法将文件或程序集加载到我的项目中

时间:2017-12-26 15:03:39

标签: plugins dynamics-crm dynamics-crm-2016

我在我的插件项目中添加了一个引用itextsharp.dll,当使用插件注册工具运行我的插件时,我得到了这个异常:

  

无法加载文件或程序集或其某个依赖项。系统   找不到指定的文件

我尝试删除ref并再次添加它,清理然后从不同的地方将它添加到我的项目中。 插件注册工具是否有关于添加非crm dll的限制?为什么?怎么解决呢?

2 个答案:

答案 0 :(得分:2)

这不起作用 - 您无法从在数据库中注册的CRM插件引用外部程序集。如果要执行此操作,则必须将外部dll与插件程序集合并。您必须记住,添加程序集作为参考并不会自动使您的引用程序集可用于您的基本程序集,因此如果您在CRM中注册您的插件程序集,系统将不会真正地"神奇地"找到你的外部程序集的某个地方(在你的情况下 - " itextsharp.dll")。如果这不是在线系统,您可以将程序集添加到GAC,或在磁盘而不是数据库上注册所有程序集(不推荐的方法)。如果要在数据库中注册它们,则必须使用ILMerge合并一个程序集中的所有内容。

答案 1 :(得分:0)

除非在CRM的bin中,否则您不能引用插件中的某些内容。

要使其正常工作,您需要IL将您的参考与插件合并。在您的项目MSBuild.ILMerge.Task中安装此软件包。然后建立。它会立即工作。该软件包将在构建后合并垃圾箱中的所有内容。因此,请确保所有其他引用都标记为“ Copy Local = false”。否则,您将有一个疯狂的大型集会。