Dynamics CRM 使用ILMerge 合并CRM开发后的DLL

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/woniu1104913/article/details/83178178

    在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的路径以空格隔开

猜你喜欢

转载自blog.csdn.net/woniu1104913/article/details/83178178