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

CRM could not load file or assembly to my project

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

Could not load file or assembly or one of its dependencies. The system cannot find the file specified

我尝试删除引用并再次添加,清理然后从不同位置将其添加到我的项目中。 插件注册工具对添加非crm dll有限制吗?为什么 ?如何解决?

这是行不通的 - 您不能从在数据库中注册的 CRM 插件引用外部程序集。如果你想这样做,你必须将你的外部 dll 与你的插件程序集合并。您必须记住,将程序集添加为引用不会自动使您引用的程序集可用于您的基础程序集,因此如果您在 CRM 中注册您的插件程序集,系统将不会 "magically" 找到您的外部程序集(在您的案例 - "itextsharp.dll")。如果这不是在线系统,您可以将程序集添加到 GAC,或者将所有程序集注册到磁盘而不是数据库(不推荐的方法)。如果您想将它们注册到数据库中,则必须使用例如 ILMerge 将所有内容合并到一个程序集中。

您不能在插件中引用某些内容,除非它在 ​​CRM 的库中。

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