zoukankan      html  css  js  c++  java
  • InstallSield更新包快速入门文档感谢原作者ㄣ齊¨彡仯乄的无私提供

    本文经原作者ㄣ齊¨彡仯乄特许授权于海洋女神发布,转载请务必注明出处与链接;原作者ㄣ齊¨彡仯乄和海洋女神保留对该文的一切法律许可下的权益;需要发布在盈利性报刊、网站等请与原作者ㄣ齊¨彡仯乄或海洋女神联系.

    简述

    本文主要描述安装程序更新包的创建

    制作更新包的主要属性

    在给出升级包类型之前,首先说明几个概念:

    1、Package code:从字面上理解就是包的代码,在IS中每构建一个包的时候都会给其赋予一个package code,而且是唯一的。

    2、ProductVersion:产品版本,当将开发过后的系统文件打包为一个.exe文件(或者CD—ROM格式包)后,就成为发布产品并可以进行上线使用了。那么product version就成了区分产品版本新旧的主要依据。

    3、ProductCode:产品代码,当你创建一个IS的object,IS会为你的工程分配一个产品代码,帮助文档中说明:MSI认为具有不同ProductCode的两个产品是不相干的。个人观点是其实Windows是不推荐相同的产品软件在系统上重复安装的,这个属性也是我们更新包查找早期版本的一个重要的依据。

    4、UpgradeCode:升级代码,从字面上看这个属性好像和我们的升级包关系很密切,但是事实上我们在制作升级包的时候,一般是不会改动UpgradeCode这个属性的。帮助文档上介绍说,MSI认为如果UpgradeCode相同,那么就是同一系列的产品,即文档中提到的“family”。

    升级包的主要类型

    对于InstallSield2010版本来说,帮助文档中给出一下几种升级包的类型:

    Major Upgrade(主要升级):既然是主要升级,那么就是说我们的更新级别很高,对产品功能上做了很大的改动,这种情况下我们只能用MajorUpgrade对产品进行升级。还有一种情况是,如果用户群体的产品版本不统一,比如说有用1.1的,有用1.2的,还有用2.0的,用户群体想用一个统一版本的更新包将不同的版本更新至最新,那么我们也只能采取MajorUpgrade这种升级方式了。问题出现了,如果用户的系统没有安装过早期的版本怎么办?MajorUpgrade升级包安装时,如果发现目标系统上以安装过早期版本,那么将对早期的版本进行卸载之后再安装升级包(或者覆盖原版本然后删除不必要的数据),也就是说MajorUpgrade是作为一个完整的安装包来执行的。如果目标系统上不存在早期的版本,那么MajorUpgrade作为一个首次安装软件正常执行安装。

    Minor Upgrade(次要升级):次要升级的级别要比主要升级低很多,比如说从1.1更新到1.2,但是我们要保证产品功能结构上不能用变动。如有变动,我们必须采用MajorUpgrade升级方式。次要升级也是作为一个完整的安装包运行的,如果有早期的产品在目标系统上安装过,那么次要升级覆盖式安装。如果没有早期版本,那么安装过程就如首次安装。

    Small Upgrade(较小升级)与MinorUpgrade相差不多,级别看实际情况而定。

    下面给出常见的几种情况升级级别的选择:

    更新需求

    Major Upgrade

    Minor Upgrade

    Small Upgrade

    提示

    修改MSI包的名称

    可以使用

       

    是否修改了ProductName

    用户可以更新早期版本也可以替换最新版本

    可以使用

         

    添加一个新的子Feature

    可以使用

    某些情况

    某些情况

    如果添加的子Feature中包含的是新的components,三种升级都可以使用,如果包含了已经存在的components,只能使用Major Upgrade

    移动或者删除了一个Feature

    可以使用

         

    在一个新的Feature中添加了新的components

    可以使用

    可以使用

    可以使用

     

    在一个已经存在的Feature中添加新的components

    可以使用

    某些情况

    某些情况

    如果你的Windows Installer的版本在2.0以后,那么你可以使用Minor 或者SmallUpgrade

    移动或者删除一个component

    可以使用

         

    改变了一个已存在的component的component code

    可以使用

         

    改变了一个已存在的component的key file

    可以使用

         

    修改、删除、添加下面任何一种:文件、快捷方式、注册键值

    可以使用

    可以使用

    可以使用

    如果文件、快捷方式,或者注册键值不仅属于一个component,而且这个component还被多个Features共享,那么只能使用Major Upgrade

    下图说明了不同升级所要修改的code:

     

    Package Code

    Product Version

    ProductCode

    Upgrade Code

    Small Upgrade

    X

         

    Minor Upgrade

    X

    X

       

    Major Upgrade

    X

    X

    X

     

    以上所述是IS为我们提供的可以作为完整安装包的三种升级,还有一种升级类型叫做升级补丁,升级补丁是作为一个QuickPatch Project创建的,必须指定你要修补的特定的版本。升级补丁主要针对于对文件、键值的增、删、改,如果选择使用升级补丁升级的你的产品,那么此次升级的变动非常的小。

    实例演示

    一.发布最初版本:

    此版本适用于用户首次安装:

    包名为:开票子系统.exe

    image

    二.发布升级补丁:

    安装此补丁前系统中已安装了开票子系统.exe

    包名为:开票子系统升级补丁1.01.exe

    image

    安装说明:升级完成之后安装路径下的grdes50.dll、gregn50.dll两个控件的版本 由5.0.0.7变为了5.5.0.0,实际上是做了覆盖操作。

    三.基于补丁的升级:

    安装此补丁前系统中已将开票子系统.exe升级为开票子系统升级补丁1.01.exe

    包名为:开票子系统升级补丁1.02.exe

    image

    安装说明:升级完成之后,安装目录下的rep文件夹下的1001.grf文件被删除。

    四.较小升级:

    安装此升级之前系统中只安装了开票子系统.exe

    包名为:开票子系统较小升级1.10.exe

    image

    安装说明:升级完成之后,安装包结构上无任何变化,实际上已经添加了一个空 的Component

    五.次要升级:

    较小升级必须安装在一个完整的安装包之上,所以以上的更新包中只有一、四满足条件,方便起见制作与四中安装包之上。

    安装此升级之前将开票子系统.exe已升级为开票子系统较小升级1.10.exe

    包名为:开票子系统次要升级1.50.exe

    image

    安装说明:在已存在的Feature下新建了一个Component,其中添加了“破解.txt” ,

    安装目录rep文件夹下新增了“破解.txt” 。

    六.主要升级:

    次要升级与较小升级相同,必须安装在一个完整的安装包之上,方便起见制作与五中安装包之上。

    安装此升级之前将开票子系统较小升级1.10.exe已升级为开票子系统次要升级1.50.exe

    包名为:开票子系统主要升级2.00.exe

    image

    安装说明:删除了整个Feature,安装目录下整个rep文件夹被删除

  • 相关阅读:
    初识python 2.x与3.x 区别
    装饰器
    函数的进阶
    Spring Boot启动问题:Cannot determine embedded database driver class for database type NONE
    22.Spring Cloud Config安全保护
    23.Spring Cloud Bus 无法更新问题(踩坑) Spring cloud config server Could not fetch remote for master remote
    24.Spring Cloud之Spring Cloud Config及Spring Cloud Bus
    Spring Boot整合Spring Data Elasticsearch 踩坑
    项目中Spring Security 整合Spring Session实现记住我功能
    32.再谈SpringBoot文件上传
  • 原文地址:https://www.cnblogs.com/Cindy_weiwei/p/1813801.html
Copyright © 2011-2022 走看看