• 不更新安装包,实现文件更新 奕婷特许授权发布


    实现installshield制作的安装程序文件更新

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

    环境:IS2009

    实现步骤:

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

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

    3. 进入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"

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

    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文件

  • 相关阅读:
    阻止用户复制页面上的文字的几种方法
    js设置聊天信息停留在最底部
    js动态删除表格中的某一行
    XmlSerializer vs DataContractSerializer: Serialization in Wcf
    WCF Service Binding Explained
    Visual Studio设置远程调试
    Could not download the Silverlight application
    .NET 中的三种接口实现方式
    化零为整WCF(9) 序列化(DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter)
    化零为整WCF(14) 事务(Transaction)
  • 原文地址:https://www.cnblogs.com/Cindy_weiwei/p/1561236.html
Copyright © 2020-2023  润新知