Dynamics CRM 使用ILMerge 合併CRM開發後的DLL

vic0228發表於2018-10-19

    在CRM的開發中會使用到plugin和workflow activity等的後端開發,在實現某個功能時偶爾會用到第三方成熟的類庫,但在plugin(此處以plugin舉例)釋出時如果選擇釋出到database時(推薦此部署方式,在系統的遷移備份時比較方便),系統是無法識別到第三方dll庫的,所以需要使用ILMerge等合併dll的工具。

   網上下載ILMerge的msi檔案,安裝後cmd開啟dos視窗,然後cd到你的安裝目錄

 

 附上程式碼

C:\Program Files (x86)\Microsoft\ILMerge>ILmerge /ndebug /target:dll /targetplatform:v4,"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2" /out:E:\dll\Export.dll /keyfile:E:\export.snk /log E:\NPOI.dll E:\NPOI.OOXML.dll E:\NPOI.OpenXml4Net.dll E:\NPOI.OpenXmlFormats.dll E:\ICSharpCode.SharpZipLib.dll E:\Export.dll

   幾個要注意的地方

   第一是targetplatform即.netframework的版本

   第二指定你的.netframework的目錄例如我這的"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2",為何要指定因為你的專案引用了很多framework中的dll,如果你不指定很可能會提示你某些dll引用不到

    第三將CRM框架下的一些dll拷貝到.NETFramework的目錄下,目的是說這些dll不需要合併因為CRM框架裡有,後期能引用到,但是如果不放到NETFramework的目錄下合併的時候會提示你這些dll缺失

    第四合並輸出後的dll需要強簽名,所以需要指定keyfile

    第五要合併的幾個dll的路徑以空格隔開

相關文章