2017-10-11 64 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註冊新的程序集。

相關問題