• 微软工具ILMerge


    释义

    ILMerge是一个可用于将多个.NET程序集合并为单个程序集的实用程序。

    ILMerge接收一组输入程序集并将它们合并到一个目标程序集中输入程序集列表中的第一个程序集是主程序集。

    当主组件是可执行文件时,目标程序集将创建为与主程序集具有相同入口点的可执行程序。而且,如果主组件具有强名称,并提供了.snk文件,则使用指定的键重新签名目标程序集,以使其具有强名称。

     

    注意:当程序集中包含非托管代码等功能时可能会导致无法合并

               ILMerge作为控制台程序打包,也可以使用与编程方式访问,详细阅读微软文档,我们这里暂时之讲解ILMerge的控制台打包

               

     

    准备

    1.下载ILMerge,下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=17630

    2.安装ILMerge,下一步下一步......完成,ok

    3.准备合并打包用的dll和exe

     

    操作

    1.合并生成exe

         ILMerge /log /target:winexe /out:sample.exe sourceTestQuartz.exe  sourceCommon.Logging.Core.dll
    

      说明:

           》/log:生成日志,可以忽略,控制台会输出log

       》/target:生成输出类型,可以简写为/t

       》/targetplatform:输出文件的.net运行版本,我这里没有使用,可以忽略

       》/out:输出的文件名称,我是输出到当前ILMerge的根目录,如果需要输出到指定目录,请指定路径,例如我可以输出到 “D:sample.exe”

           》多个合并文件注意空格隔开,我这里资源放在了ILMerge目录下的source文件夹下,所以写法为 sourceXXX

     

    2.合并生成dll

        ILMerge /log /target:dll /out:sample.dll sourceNPOI.dll sourceNPOI.OOXML.dll
    

       上面已经介绍过就不多说了

    备注 ----参考csdn-iloli的文章,笔者没有测试,做备注使用

    1.interop这种由COM转换过来的DLL合并:相关依赖的DLL必须也一起合并,vbide.dll要复制到目录一起合并

    2.如果有资源DLL, 应该将要被合并的oldclient.exe先改为别的名称,因为资源文件为XX.resources.dll,而ILMERGE不能合并资源文件,否则在导出后将找不到此资源文件

     

    参考

    https://github.com/Microsoft/ILMerge/blob/master/ilmerge-manual.md

    http://blog.csdn.net/iloli/article/details/9324569

    http://www.sufeinet.com/forum.php?mod=viewthread&tid=17822

     

     

     

     

  • 相关阅读:
    PHP+shell实现多线程的方法
    【JavaScript】一个同步于本地时间的动态时间
    void 0 或者 undefined
    Android Activity间动画跳转
    如何申请微信公众平台接口測试帐号
    hdu 4862 KM算法 最小K路径覆盖的模型
    【Unity 3D】学习笔记三十三:游戏元素——天空盒子
    cocos2d-x-lua基础系列教程五(lua单例)
    技术走向管理一些思考(7)-激励成员
    Runtime.getRuntime().exec()----记录日志案例
  • 原文地址:https://www.cnblogs.com/xihao/p/7746420.html
Copyright © 2020-2023  润新知