• 不重新编译安装包,实现installshield制作的安装程序文件更新


     

    目标:不重新编译安装包,实现installshield制作的安装程序文件更新

    环境:IS2009

    实现步骤:

    1. 从安装目录的.\system下提取iscab.exeISTools.dllMediaBuild40.dll文件,将它们拷贝到自建的文件夹中,例如这里拷贝到d:\test目录。

     

    2. 将要更改的安装包拷贝也拷贝到d:\test目录

     

    进入cmd窗口,,输入d:,,再输入cd test,进入d:\test目录。之后使用命令行iscab data1.cab -lx -icab.ini提取安装包结构信息输出到 cab.ini 文件,大致包含头部描述段[ISCAB Info]和文件描述段[Program Files in TARGETDIR]两部分格式:

     

    [ISCAB Info]

    Product=ISCAB

    Version=2.0

     

    [<Support>English Files]

    File1="_IsRes.dll"

     

    [<Engine>Engine Files]

    File1="corecomp.ini"

     

    [<Support>Chinese (Simplified) OS Independent Files]

    File1="license.txt"

    File2="vssver.scc"

     

    [<Support>Non-SelfRegistering]

    File1="isrt.dll"

    File2="default.pal"

     

    [<Support>English OS Independent Files]

    File1="license.txt"

     

    [<Support>Language Independent Intel 32 Files]

     

    [Program Files in TARGETDIR]

    File1="MoticTools.dll"

    File2="MoticTrace.exe"

    File3="Software Help Request.xls"

     

    [<Support>Script]

    File1="setup.inx"

     

    [<Engine>ScriptEngine]

    File1="iscript.dll"

     

    [<Support>Chinese (Simplified) Intel 32 Files]

     

    [<Support>English Intel 32 Files]

     

    [<Disk1>Disk1 Files(1)]

    File1="layout.bin"

    File2="data1.hdr"

    File3="data1.cab"

     

    [<Disk1>Disk1 Files(2)]

    File1="Setup.exe"

    File2="Setup.ini"

     

    [<Disk1>Disk1 Files(3)]

    File1="setup.inx"

     

    [<Support>Chinese (Simplified) String Tables]

    File1="value.shl"

    File2="vssver.scc"

     

    [<Support>English String Tables]

    File1="value.shl"

     

    [<Support>Language Independent OS Independent Files]

     

    [<Engine>SelfRegistering]

    File1="ctor.dll"

    File2="objectps.dll"

    File3="iuser.dll"

     

    [<Support>Chinese (Simplified) Files]

    File1="_IsRes.dll"

     

    [<Engine>Kernel Placeholder]

    File1="iKernel.exe"

     

     

     

     

     

     

     

    3. 通过各种命令行实现增加,删除,替换,解压更新文件到原始安装包里

    1) 增加文件:将要增加的文件放置在d:\test目录,编辑导出的 cab.ini 文件,仅保留头部描述段([iscab info])和要加入的文件描述段(注意,文件所在的组描述应保留,如[Public Files in TARGERDIR]),将编辑后的文件另存为 add.ini,在cmd窗口中使用命令行iscab data1.cab -a -iadd.ini实现增加文件进原始安装包。

    范例:

    增加"moticdog.dll"文件,将cab,ini文件改成如下:

    [ISCAB Info]

    Product=ISCAB

    Version=2.0

     

    [Program Files in TARGETDIR]

    File1="MoticTools.dll"

    File2="MoticTrace.exe"

    File3="Software Help Request.xls"

    File4=" moticdog.dll "

     

     

    cmd窗口中使用命令行iscab data1.cab -a -iadd.ini这时双击安装包安装软件,在安装目录下就可以看到增加了"moticdog.dl这个文件。

    2) 移除文件: 编辑导出的 cab.ini 文件,仅保留头部描述段([iscab info])和要删除的文件描述段(注意,文件所在的组描述应保留,如[Public Files in TARGERDIR])将编辑后的文件另存为 del.ini,在cmd窗口中使用命令行iscab data1.cab -r -idel.ini,实现将始安装包文件删除。

    范例:

    删除File3="Software Help Request.xls"文件,将cab,ini文件改成如下:

    [ISCAB Info]

    Product=ISCAB

    Version=2.0

     

    [Program Files in TARGETDIR]

    File3="Software Help Request.xls"


    cmd窗口中使用命令行iscab data1.cab -r -idel.ini这时双击安装包安装软件,在安装目录下就可以看到删除Software Help Request.xls文件

     

    版权声明:转载请注明原始出处。  

  • 相关阅读:
    IDEA使用Git传放项目
    前端自适应知识点
    数据可视化
    vue调用Moment显示时间
    java判断通常的逻辑
    java常用的逻辑
    java匿名内部类练习
    java 匿名内部类
    java 内部类定义在局部时需要注意的情况
    java内部类的定义原则
  • 原文地址:https://www.cnblogs.com/sabrinahuang/p/1932043.html
Copyright © 2020-2023  润新知