原文:【C#】VS2012+InstallShield2013制作软件更新包

上篇文章介绍了如何使用installshield制作软件的安装包,见地址:http://blog.csdn.net/catshitone/article/details/41700115

这次来介绍一下,当软件有更新时,如何制作一个更新包,自动删除旧软件,安装新软件。

1.首先打开你的安装部署项目。

我的是Setup1.的General Information文件,如我左边圈住的有三个重要的项,如下图。

Product Version:你本次产品的版本号,每次发布新产品,这个的Version号,要增加一下。我上次的版本是1.02,所以这次我设置为1.03.

Product Code:这就是一个guid,相当于产品的唯一识别码,每一次发布新版本,这个就要改变一下,可点击该行右边的{...}按钮进行随机分配。

Upgrade Code:这个是产品的升级码,同一个产品共用一个升级码这里要保持不变。就像所有的vs2010都用的同一个Upgrade Code,每此vs2010有update,它只是改的Product
Code。

2.配置更新设定。

在右面列表选择Upgrade Paths文件,打开后,如下图1所示,在Upgrade Paths上右键,选择New Upgrade Path。然后选择你上一个版本的setup.exe文件,如下图2所示。

(图1)

(图2)

然后,就看到了图3的界面,左边的NewUpgradeEntry1,就是新建的那个。右边的Upgrade Code不要改变,它表示了你整个的软件系列。Min Version和Max Version控制了软件更新的版本区间,在此版本区间内的软件都会被卸载并更新。一般我Min
Version都是选择1.00.0000,表示只要更新所有老版本。你可以把Min选择成1.01,Max选择1.03,则只有1.01-1.03的版本会被更新掉。

(图3)

3.生成新版本

在Setup1上右键重新生成新的setup.exe。安装时就会把旧版本覆盖掉了。

有几个不好理解的地方:

1.如果Product Version和Product Code相同,生成的setup.exe也没有被改动过,则安装两次改软件包的时候会出现什么情况呢?结果如下图:

2.如果其他情况都如我上面1所说,我任何代码和设置都没改动过,只不过又重新生成了一次setup.exe呢?即已经安装了上次生成的setup.exe,这次再安装新生成的setup.exe。结果如下,为什么会出现这种结果,还没弄清楚怎么回事。

3.如果Product Version一样,Product Code随机生成了一个,然后setup.exe也重新生成了,会出现什么结果呢?答案是:什么都不会出现,照样会被覆盖安装。这中结果是由上述的Max Version决定了,因为我测试的时候把Product Version和Max Version设置一样了,如果把Product Version设定为大于Max Version,那会有什么结果?就请读者去尝试一下吧!

By Jim。

【C#】VS2012+InstallShield2013制作软件更新包的更多相关文章

  1. IoT固/软件更新及开源选项

    会出什么问题呢?大多数这些设备的设计都不像是被恶意攻击的目标. 嵌入式系统传统上被认为是稳定的产品, 但实施起来成本高昂, 因为投资回报率(ROI)在的周期比较长. 在过去一旦发货, 就很少需要更新这 ...

  2. 【全文转载】Precision Helper:最佳免费 CHM 制作软件

    跳至内容 善用佳软 IT义工的个人博客: 善用佳软= (善意+善于)应用优秀软件 xbeta= x(未知数)+β(改进测试版) Precision Helper:最佳免费 CHM 制作软件 许多用户都 ...

  3. 网易云音乐 歌词制作软件 BesLyric (最新版本下载)

    导读 BesLyric , 一款专门制作 网易云音乐 LRC 滚动歌词的软件! 搜索.下载.制作 歌词更方便! 哈哈,喜欢网易云音乐,又愁于制作歌词的童鞋有福啦!Beslyric 为你排忧解难! 本文 ...

  4. NanoPC-T2制作刷机包

    anoPC-T2制作刷机包 前提:到友善的wiki中,仔细看编译uboot.内核.制作刷机包的教程. 准备工作: 1. 虚拟机Ubuntu安装,并安装n多软件可以支撑编译内核等等. 2.  安装交叉编 ...

  5. Android软件更新安装。

    app的开发有一个问题是避免不了的,那就是软件的升级维护. 这里我在查过一些资料和写了一个升级帮助类.使用很方便.直接导入就可以了. ( VersionBean.class为更新地址返回的数据对象,我 ...

  6. iPhone取消软件更新上边的1

    去除设置的更新+1小红点提示主要分为越狱和非越狱设备两种方法. 越狱状态下方法: 首先将你的设备进行越狱: 越狱后安装ifile(这个自行搜索安装): 用ifile打开/System/Library/ ...

  7. 安卓升级提示 phoneGap APK软件更新提示

    以下代码由PHP200 阿杜整理 package com.example.syzx;   import java.io.BufferedReader; import java.io.File; imp ...

  8. NSIS:制作软件升级安装包

    原文 NSIS:制作软件升级安装包 相信不是每个人写的软件都只发布一次就可以了,肯定要有修改和维护的情况发生.在这种情况下,您可能就需要一个软件的升级安装包了.   现在,我们就来一步步把这个安装包做 ...

  9. 大智慧F10离线资料压缩包带F10关键字过滤软件--更新于2014-01-06.rar 184MB

    大智慧F10离线资料包带F10关键字过滤软件--更新于2014-01-06.rar 移步到百度网盘下载: http://pan.baidu.com/s/1c01PDnE

随机推荐

  1. ios开发利用AFN检测网络状态

    AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager]; [manager setRe ...

  2. Spring之i18n配置与使用

    Spring的i18n配置: <!-- conf:i18n --> <bean id="messageSource" class="org.spring ...

  3. kali 系统的源

    sources.list deb http://http.kali.org/kali kali-rolling main non-free contrib deb http://mirrors.ust ...

  4. 百度UEditor上传图片-再总结一次

    晚上,在继续开发BriefCMS,把百度UEditor上传图片的问题,给解决了,终于解决了. 公司极简版CMS.BriefCMS.个人官网,最近2个月,与百度UEditor厮杀了好久.最值得吐槽的,就 ...

  5. 囚徒困境、价格大战与 iPhone 的价格

    静态/动态,完全/不完全: 完全信息静态博弈: 不完全信息静态博弈: 完全信息动态博弈: 不完全信息动态博弈: 囚徒困境实际上反映了一个深刻的哲学问题:个人利益与集体利益的矛盾.个人为了自己利益的最大 ...

  6. java及jdbc与sql之间日期的转换

    javaSE中主要为日期字符串和日期对象之间的转换 JDBC中主要是util中Date与sql中作为数据库中Date的转换 public class DateDemo { public static ...

  7. NOIP模拟 Ball - log积化和

    题目描述 Alice 与 Bob 在玩游戏.他们一共玩了 t 轮游戏.游戏中,他们分别获得了 n 个和 m 个小球.每个球上有一个分数.每个人的得分都为他所获得所有小球分数的乘积,分数小者获胜.问每轮 ...

  8. WPF入门(三)->几何图形之线条(LineGeometry)

    原文:WPF入门(三)->几何图形之线条(LineGeometry) 前一章我们对wpf的xaml语言有了一定的了解,那么我们现在开始来学习如何使用wpf来画出几何图形. LineGeometr ...

  9. hadoop 3.x 回收站

    使用回收站最主要是为了给误删文件的你留条后路 打开core-site.xml添加以下配置 <!--回收站保存文件时间--> <property> <name>fs. ...

  10. iOS 使用贝塞尔曲线绘制路径

    使用贝塞尔曲线绘制路径 大多数时候,我们在开发中使用的控件的边框是矩形,或者做一点圆角,是使得矩形的角看起来更加的圆滑. 但是如果我们想要一个不规则的图形怎么办?有人说,叫UI妹子做,不仅省事,还可以 ...