2017-10-11 65 views
1

为了将第三方.dll合并到一个自定义Dynamics CRM插件(.dll)中,我已经遵循了我可以找到的与ILMerge相关的每个指南,以便我可以使用该功能。如何将引用程序集合合并为单个.dll for Dynamics CRM插件?

我正在编写一个Dynamics CRM插件,它将采用.docx文档,填充一些信息,并向关联的实体添加注释(注释)。检索文档模板并创建注释工作正常。所以,我知道我的插件是健全的(注册和运行没关系)。

但是,一旦我尝试使用DocumentFormat.OpenXml操纵我的文档模板,我得到Dynamics CRM中的错误:

无法加载文件或程序集“DocumentFormat.OpenXml,版本= 2.5.5631.0 .. .....”

做一些研究之后,我发现我需要的‘DocumentFormat.OpenXml.dll合并’到我的插件.dll文件。

我安装MSBuild.ILMerge.Task(和ILMerge)在VS2015。在构建过程中,我现在收到两条消息“传递合并”和“合并程序集:路径名称 \ my.dll; 路径名称 \ DocumentFormat.OpenXml.dll”。它似乎做我需要的。但是,当我用新的.dll更新插件时,我得到相同的“无法加载文件或程序集”错误消息。

我无法找到任何可以进一步帮助确保引用的DocumentFormat.OpenXml.dll实际合并到我的目标.dll文件的文档。

+1

不是更新的PRT现有的插件,注销现有及注册DLL合并后新的装配 –

+1

你可以使用任何反编译看合并DLL和内容验证 –

+1

@ArunVinoth,我删除了.dll和重建它。我用dotPeek来检查.dll以确保它包含DocumentFormat.OpenXml程序集。然后,我注销并重新注册.dll在插件注册工具,它一切工作!如果您想发布解除注册的答案并重新注册.dll,我会标记它。谢谢! – Rob

回答

1

我无法找到任何文件,可以进一步帮助确保我引用的DocumentFormat.OpenXml.dll实际上被合并到我的目标.dll。

您可以使用任何反编译器(例如:dotPeek)来查看合并的dll &验证的内容。

当我用新的.dll更新插件时,我得到相同的“无法加载文件或程序集”错误消息。

而不是更新PRT中现有的插件,取消注册现有的&与合并的dll注册新的程序集。

相关问题