zoukankan      html  css  js  c++  java
  • 微软工具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

     

     

     

     

  • 相关阅读:
    python接口自动化基础框架结构 ——分层
    常见的布局实现,以及响应式布局技巧。
    google closure继承模块三:goog.base()源码分析
    google closure--继承模块二:goog.base()demo分析
    google closure--继承模块一:goog.inherits()
    项目中踩过的坑之-sessionStorage
    .NET/C#使用NPOI操作Excel
    WEB免费打印控件推荐
    Linux下部署ASP.NET项目
    Hibernate 查询方式(HQL/QBC/QBE)汇总
  • 原文地址:https://www.cnblogs.com/xihao/p/7746420.html
Copyright © 2011-2022 走看看