简述 

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

制作更新包的主要属性 

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

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

二.发布升级补丁: 

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

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

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

三.基于补丁的升级: 

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

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

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

四.较小升级: 

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

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

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

五.次要升级: 

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

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

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

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

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

六.主要升级:

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

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

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

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

转载于:https://www.cnblogs.com/BeyondTechnology/archive/2010/10/14/1851722.html

InstallSield更新包快速入门文档相关推荐

  1. InstallSield更新包快速入门文档----感谢原作者ㄣ齊¨彡仯乄的无私提供

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

  2. GeoPandas官方快速入门文档(中文翻译版)

    GeoPandas官方快速入门文档(中文翻译版) 原文链接>>Introduction to GeoPandas 点这里可以一键跑通>>GeoPandas 简介 GeoPand ...

  3. php基础 快速入门文档,快速入门 - Laravel 5.8 中文文档手册 - php中文网手册

    Eloquent:入门 简介 Laravel 的 Eloquent ORM 提供了一个漂亮.简洁的 ActiveRecord 实现来和数据库交互.每个数据库表都有一个对应的「模型」用来与该表交互.你可 ...

  4. PHP 的 cURL库快速入门文档

    作者:Burak Guzel 原文链接:http://net.tutsplus.com/tutorials/php/techniques-and-resources-for-mastering-cur ...

  5. jquery最快速入门文档

    <!DOCTYPE html> jQuery 选择器 1. id $('#id') class <div class="c1"></div> $ ...

  6. Android入门文档

    该文章为网络材料整理,部分内容经过重新编写. 一. 名词介绍 JDK:Java Development Kit Java 语言的软件开发工具包 JRE:Java Runtime Environment ...

  7. 一份其实很短的 LaTeX 入门文档

    一份其实很短的 LaTeX 入门文档 优雅的 LaTeX 有很多 Geeks 或者 LaTeX's Fanatical Fans 过分地强调了 LaTeX 的一些并非重点的特性,以至于很多初学者会觉得 ...

  8. UniRx官方入门文档

    UniRx 官方文档翻译 UniRx官方入门文档 UniRx入门系列一 UniRx入门系列二 UniRx入门系列三 UniRx入门系列四 UniRx入门系列五 UniRx 基于Unity的响应式编程框 ...

  9. ssis导入xml_使用SSIS包将XML文档导入SQL Server表

    ssis导入xml This article guides you through importing XML documents into SQL tables using SSIS package ...

  10. 如何在 Windows 中快速查找文档

    近几年,随着硬盘介质价格的大幅度下降,各位电脑迷们的个人硬盘容量越来越大,动辄五六十G,甚至上百G都不足为奇,这在前几年是无法想象的.但是硬盘大了,存放的文档多了,查找速度慢的烦恼也随之来了.其实在W ...

最新文章

  1. Linux操作系统无人值守安装配置指南
  2. windows2008文件服务器端口,windows server 2008 文件服务器不定期出现大量CLOSE_WAIT状态的连接,必须重启服务器,客户端才能访问共享。...
  3. python学习笔记(六)循环、迭代
  4. mongodb atlas_如何使用MongoDB Atlas将MERN应用程序部署到Heroku
  5. 遍历进程并获取进程路径 - 回复 编程少年 的问题
  6. 关于如何查看 EntityValidationErrors 详细信息的解决方法
  7. 序列化和反序列化(五)——敏感字段加密
  8. 跟对人,走对路,做对事!
  9. 黑客第二课:脱屌第一步 —— Vim Fundamentals
  10. 联想电脑Fn热键驱动
  11. 日志分析的大救星 — — 集算器
  12. sop流程图模板_这是一份标准作业流程SOP详解,附流程图绘制规范,不愁不会画!...
  13. Ink脚本语言学习笔记(一)
  14. S5P4418裸机开发(三):运行裸机程序
  15. 1分钟链圈 | 凤凰网推出区块链产品“凤凰蛋”;阿里否认涉足区块链和发币,称麻吉宝已下线;Google朱会灿,AI回归
  16. 【神经网络学习】鸢尾花分类的实现
  17. 大数据高级开发工程师——Spark学习笔记(10)
  18. macOS下载【转载】
  19. Python编程练习题目汇总
  20. 手机端设置缩放的解决方法和遇到的UC浏览器的坑

热门文章

  1. 【博客搬家】【转】matlab 6.5和7.0中simulink模型的兼容问题
  2. BZOJ.2816.[ZJOI2012]网络(LCT)
  3. C/C++(变量作用域)
  4. HDU 1512 Monkey King(左偏树模板题)
  5. redis配置认证密码以及远程访问
  6. webView图片点击可以实现预览效果
  7. 在线编程 - PyPool小站启动记
  8. 各类数据库默认端口总结
  9. 工厂和反射的使用方法
  10. 【1.0】忘记mysql 密码 如何修改之后