爲了將第三方.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文件的文檔。
不是更新的PRT現有的插件,註銷現有及註冊DLL合併後新的裝配 –
你可以使用任何反編譯看合併DLL和內容驗證 –
@ArunVinoth,我刪除了.dll和重建它。我用dotPeek來檢查.dll以確保它包含DocumentFormat.OpenXml程序集。然後,我註銷並重新註冊.dll在插件註冊工具,它一切工作!如果您想發佈解除註冊的答案並重新註冊.dll,我會標記它。謝謝! – Rob