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属性应该保持一致。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)