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
二.发布升级补丁:
安装此补丁前系统中已安装了开票子系统.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更新包快速入门文档相关推荐
- InstallSield更新包快速入门文档----感谢原作者ㄣ齊¨彡仯乄的无私提供
本文经原作者ㄣ齊¨彡仯乄特许授权于海洋女神发布,转载请务必注明出处与链接:原作者ㄣ齊¨彡仯乄和海洋女神保留对该文的一切法律许可下的权益:需要发布在盈利性报刊.网站等请与原作者ㄣ齊¨彡仯乄或海洋女神联系 ...
- GeoPandas官方快速入门文档(中文翻译版)
GeoPandas官方快速入门文档(中文翻译版) 原文链接>>Introduction to GeoPandas 点这里可以一键跑通>>GeoPandas 简介 GeoPand ...
- php基础 快速入门文档,快速入门 - Laravel 5.8 中文文档手册 - php中文网手册
Eloquent:入门 简介 Laravel 的 Eloquent ORM 提供了一个漂亮.简洁的 ActiveRecord 实现来和数据库交互.每个数据库表都有一个对应的「模型」用来与该表交互.你可 ...
- PHP 的 cURL库快速入门文档
作者:Burak Guzel 原文链接:http://net.tutsplus.com/tutorials/php/techniques-and-resources-for-mastering-cur ...
- jquery最快速入门文档
<!DOCTYPE html> jQuery 选择器 1. id $('#id') class <div class="c1"></div> $ ...
- Android入门文档
该文章为网络材料整理,部分内容经过重新编写. 一. 名词介绍 JDK:Java Development Kit Java 语言的软件开发工具包 JRE:Java Runtime Environment ...
- 一份其实很短的 LaTeX 入门文档
一份其实很短的 LaTeX 入门文档 优雅的 LaTeX 有很多 Geeks 或者 LaTeX's Fanatical Fans 过分地强调了 LaTeX 的一些并非重点的特性,以至于很多初学者会觉得 ...
- UniRx官方入门文档
UniRx 官方文档翻译 UniRx官方入门文档 UniRx入门系列一 UniRx入门系列二 UniRx入门系列三 UniRx入门系列四 UniRx入门系列五 UniRx 基于Unity的响应式编程框 ...
- ssis导入xml_使用SSIS包将XML文档导入SQL Server表
ssis导入xml This article guides you through importing XML documents into SQL tables using SSIS package ...
- 如何在 Windows 中快速查找文档
近几年,随着硬盘介质价格的大幅度下降,各位电脑迷们的个人硬盘容量越来越大,动辄五六十G,甚至上百G都不足为奇,这在前几年是无法想象的.但是硬盘大了,存放的文档多了,查找速度慢的烦恼也随之来了.其实在W ...
最新文章
- Linux操作系统无人值守安装配置指南
- windows2008文件服务器端口,windows server 2008 文件服务器不定期出现大量CLOSE_WAIT状态的连接,必须重启服务器,客户端才能访问共享。...
- python学习笔记(六)循环、迭代
- mongodb atlas_如何使用MongoDB Atlas将MERN应用程序部署到Heroku
- 遍历进程并获取进程路径 - 回复 编程少年 的问题
- 关于如何查看 EntityValidationErrors 详细信息的解决方法
- 序列化和反序列化(五)——敏感字段加密
- 跟对人,走对路,做对事!
- 黑客第二课:脱屌第一步 —— Vim Fundamentals
- 联想电脑Fn热键驱动
- 日志分析的大救星 — — 集算器
- sop流程图模板_这是一份标准作业流程SOP详解,附流程图绘制规范,不愁不会画!...
- Ink脚本语言学习笔记(一)
- S5P4418裸机开发(三):运行裸机程序
- 1分钟链圈 | 凤凰网推出区块链产品“凤凰蛋”;阿里否认涉足区块链和发币,称麻吉宝已下线;Google朱会灿,AI回归
- 【神经网络学习】鸢尾花分类的实现
- 大数据高级开发工程师——Spark学习笔记(10)
- macOS下载【转载】
- Python编程练习题目汇总
- 手机端设置缩放的解决方法和遇到的UC浏览器的坑