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

Plugins CRM无法将文件或程序集加载到我的项目中,plugins,dynamics-crm,dynamics-crm-2016,Plugins,Dynamics Crm,Dynamics Crm 2016,我在我的插件项目中添加了一个引用itextsharp.dll,当使用插件注册工具运行插件时,我遇到以下异常: 无法加载文件或程序集或其依赖项之一。系统 找不到指定的文件 我尝试删除ref并再次添加,清理并从不同的位置将其添加到我的项目中。 插件注册工具中是否有关于添加非crm DLL的限制?为什么?如何解决它?这是行不通的-您不能从数据库中注册的CRM插件引用外部程序集。如果您想这样做,您将不得不合并您的外部dll与插件程序集。您必须记住,添加程序集作为引用并不会自动使被引用的程序集可用于基本程

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

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

我尝试删除ref并再次添加,清理并从不同的位置将其添加到我的项目中。
插件注册工具中是否有关于添加非crm DLL的限制?为什么?如何解决它?

这是行不通的-您不能从数据库中注册的CRM插件引用外部程序集。如果您想这样做,您将不得不合并您的外部dll与插件程序集。您必须记住,添加程序集作为引用并不会自动使被引用的程序集可用于基本程序集,因此,如果您在CRM中注册插件程序集,系统将不会“神奇地”找到外部程序集的某个位置(在您的例子中为“itextsharp.dll”)。如果这不是联机系统,您可以将程序集添加到GAC,或者在磁盘上而不是数据库上注册所有程序集(不推荐这种方法)。如果您想在数据库中注册它们,您必须使用ILMerge(例如)将所有内容合并到一个程序集中。

您不能引用插件中的内容,除非它位于CRM的bin中


要使其工作,您需要将引用与插件合并。在项目中安装此软件包:MSBuild.ILMerge.Task。然后建造。它会立即起作用。生成后,包将合并bin中的所有内容。因此,请确保所有其他引用都标记为“Copy Local=false”。否则,您将有一个疯狂的大程序集。

我发现ILRepack比ILMerge()更好更快