用Wix手工编辑XML制作C++ MSI安装程序,怎样保证安装新版本时候强制卸载旧版本,急急急!!!

用Wix手工编辑XML制作C++ MSI安装程序,怎样保证安装新版本时候强制卸载旧版本,急急急!!!,第1张

建议: 我看了《电脑报》2001年4月2日第13期《Excel在会计中的应用》一文,其中提到利用Execl汇总报表的方法,但每次都要把下属单位的报表数据手工输入子报表中,如果下属单位较多,每次都这样 *** 作甚是麻烦。下面介绍我在实际工作中摸索出的一种合并会计报表的方法:利用Execl可以在不同的工作簿文件中建立链接关系的功能来合并报表。这种方法可一劳永逸解决每次手工输入的问题,只要每次将下属单位的报表文件拷贝到指定的目录下,就轻松完成了报表合并!

1、InstallShield:安装盘开发和安装脚本生成器,可用于创建自定义Windows安装器并进行自动更新。

2、NSIS:一个基于脚本的开源安装器生成器,能够生成基于Windows的应用程序安装器和自解压缩安装程序

3、WiX:一个工具集和语言,可以用于创建Windows安装程序并管理Windows *** 作系统上的软件。

4、AdvancedInstaller:一个用于创建Windows安装程序的流行的商业软件。

其实每一次程序发布的时候,如果是版本更新,最好还是通过注册表删除卸载旧版本,之后升级新版本最好的.如果只是升级组件这里有3种解决方法:

1)通过web services获取服务器端的升级数据,根据数据的比较实现安装包升级

2)通过增加 Version 的值,同时不改ProductCode,也可以实现, *** 作细节不多讲,各版本不一样.

3)使用第三方软件:Wix,这个可以根据教程一步一步来,方便的很.

---------

第二种方式如果没有在特殊要求下,最好还是建议用户先卸载再安装升级(包括我们项目组基本上也是这样做,目的是防止接口不统一引起异常导致升级组件失败),可以增加成功率.

如果有服务器进行控制,并且能通过注册表找到安装路径下的dll或com组件,完全可以下载替换.不知道你是需要更新部分组件还是整体更新呢,根据你的需求进行选择.

另外从网上找到一些方法希望能够帮助你:

1. http://www.cnblogs.com/zhaoblogs/archive/2012/10/26/2741258.html

2.用vs打包后的windows installer安装程序,默认会检查版本,windows installer是根据UpgradeCode和版本号(Version)来查找版本号的,一般的情况下我们只会修改ProductCode和Version,而不会修改UpgradeCode,就是为了能够检查到老版本或者更新的版本,如果不需要版本检查,那么更改UpgradeCode或许可以实现你的要求,但是这样可能会产生一些无法预料的问题

3.换一个思路,直接替换你修改的dll 文件就可以了,很多软件升级都是这样!

4.

可以按楼上的使用自动更新来做,但是需要花一些时间来熟悉和搭环境;当然你也可以使用Major Upgrades方式制作升级安装包,或者制作补丁包,如果软件体积不大,最好用Major Upgrades方式,它是最可靠的:

Major Upgrades制作的升级安装包会自动卸载以前的版本程序,然后安装新版本的程序,因此不用一台台手动删除程序,直接安装新版本的程序就可以了;

要制作Major Upgrades制作的升级安装包,必须修改ProductCode属性,相同的ProductCode在没有卸载旧版本而安装新版本时会导致出错提示;

修改Version属性,以区别于旧版本

设置RemovePreviousVersions属性为true,也就是允许安装程序卸载以前版本;要卸载旧的版本程序还需要搜索到已安装的旧版本程序,使用vs打包时是通过UpgradeCode找到旧版本的程序,因此新版本和旧版本的UpgradeCode属性应该保持一致。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11640880.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存