如何用Installshield developer 做升级安装包

jackyzheng 2003-07-09 03:03:23
本人用Installshield developer 7.02做安装包,要求在卸载时会弹出一个窗口,有两个选项,一项是:升级程序;另一项是:删除程序。
请问,“升级程序”部分的功能如何实现。
...全文
194 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
喝醉的咖啡 2003-07-30
  • 打赏
  • 举报
回复
对 InstallShield 安装的程序最标准的卸载方法是
执行:
InstallShield 8:
"X:\Program Files\Common Files\InstallShield\Driver\8\Intel 32\IDriver.exe" /M{ProductGUID}
InstallShield 7:
"X:\Program Files\Common Files\InstallShield\Driver\7\Intel 32\IDriver.exe" /M{ProductGUID}

也就是说,关键是知道你要卸载的软件包的 产品安装包 GUID。

在 InstallShield 执行过程中,可以通过全局常量 UNINSTALL_STRING 获得上面这一串东西。只是要注意,在 InstallShield 8 中 UNINSTALL_STRING 的 " 位置不正确地将执行参数 /M{ProductGUID} 也包括在其中,导致系统找不到名为"X:\Program Files\Common Files\InstallShield\Driver\8\Intel 32\IDriver.exe /M{ProductGUID}"的可执行程序而卸载失败。所以要在程序中对 UNINSTALL_STRING 进行处理,将其"位置改一改(在回答另外一位朋友的提问中有代码)。

有了正确的 UNINSTALL_STRING,卸载软件包只需如此:
LaunchAppAndWait(UNINSTALL_STRING,"",WAIT);


另外,对一个安装程序使用 /uninst 参数也能执行对该版本软件的卸载工作。

在 InstallShield 的 help 中提到了几个获取软件版本信息和进行卸载操作的函数,但文档中同时说明不在 InstallShield Developer 版本中支持,遗憾。


所有符合 MSI 标准安装的程序,都会将注册信息存放到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
下面,可以全部列出来。添加删除程序就是从这里获取列表的,如果不知道 ProductCode(Product GUID),可能要在这里遍历每一个项,对其版本和名称进行判断后找到你需要的产品,得到ProductCode,才能删除。
我仔细查阅了 MSI 和 InstallShield 的 help,都没有找到方法直接通过产品名称和版本号码获得ProductCode。
davidwolf 2003-07-29
  • 打赏
  • 举报
回复
如果不管版本新久都卸載呢?
喝醉的咖啡 2003-07-28
  • 打赏
  • 举报
回复
对了,ISD7.04 做补丁包是一个单独的工具,在工具菜单里。
我琢磨了很久都没用成功,后来换 ISD8.02才搞定(也有些小毛病)。

注意:ISD8.* 做的安装程序和 ISD7.* 做的安装程序不兼容。
喝醉的咖啡 2003-07-28
  • 打赏
  • 举报
回复
在 InstallScript 编辑中对 Uninstalled 事件进行处理

///////////////////////////////////////////////////////////////////////////////
// EVENT: Uninstalled event is sent just after files for the feature:
// \MainApp are removed during uninstallation.
///////////////////////////////////////////////////////////////////////////////

export prototype MainApp_UnInstalled();
function MainApp_UnInstalled()
begin

end;

比如用 LaunchApp 来调用你的另外一个安装程序。


不过我认为你的描述有问题,准确地说应该是:在安装一个新版本之前卸载老版本。
我用的方法是在 OnBegin 中判断当前正要安装的版本是否比原有版本更新,如果是,则调用 LaunchAppAndWait(UNINSTALLSTRING,WAIT) 来卸载原有版本,随后继续安装。
否则,如果依靠ISD自己升级的话,ISD会自动判断提示用户进行“更新”,但在更新之后就有很多问题了。

对于InstallShield Developer 8.02 的 Uninstallstring 存在的一些问题我在另外回答朋友的问题中做了解释。

最后:ISD 基于 MSI 提供了 patch 制作能力,可以不卸载原有版本完成“补丁”升级。你可以在原有的版本基础上,用现有版本很简单的作出差异的补丁来。不过经验来看,最好不要用对原有文件进行二进制修改方式的补丁(没必要那么节省空间),我喜欢用新文件覆盖久文件。
再,ISD的在线自动升级功能不如 WiseInstaller 好用。可惜后者的最新版本在我这里始终无法使用该功能(程序错误),我只好自己写了2个在线自动升级程序(一个模仿WindowsUpdate,一个模仿Windows AutoUpdate小程序),定时检查并下载用 ISD8.02做的补丁程序。
期待 ISD 的UpdateService能够更加方便,Wise的在线升级的bug快点儿解决!
davidwolf 2003-07-28
  • 打赏
  • 举报
回复
觀注
jackyzheng 2003-07-21
  • 打赏
  • 举报
回复
up
jackyzheng 2003-07-16
  • 打赏
  • 举报
回复
请大家帮帮忙呀:
如何用Installshield developer 实现把老版本卸载后自动更新成新版本.
jackyzheng 2003-07-15
  • 打赏
  • 举报
回复
大家救命啊
wuq2003 2003-07-15
  • 打赏
  • 举报
回复
up
jackyzheng 2003-07-14
  • 打赏
  • 举报
回复
up
内容概要:本文围绕基于三重移相控制(TPS)的双有源桥(DAB)高频隔离DC-DC变换器开展系统性研究,重点构建了其在Simulink环境下的高精度仿真模型。研究全面涵盖SPS单相移相、DPS双重重移相与TPS三重移相等多种控制策略的建模、实现与性能对比,深入分析不同模式下变换器的功率传输特性、软开关实现条件及功率回流问题,旨在提升DAB在交直流混合微电网、能量路由器、多端口柔性互联装置等场景中的转换效率与动态响应能力。通过对ZVS(零电压切换)条件的精确控制与移相角参数的优化,有效降低了开关损耗,增强了系统整体能效与运行稳定性。该仿真模型具有良好的可扩展性,适用于复杂电能转换系统的科研验证与工程开发。; 适合人群:电力电子、电气工程及其自动化等相关专业的硕士研究生、博士生、科研人员以及从事新能源变换器、柔性输配电系统设计的工程技术人员。; 使用场景及目标:①掌握双有源桥DAB变换器的基本工作原理及其在高频隔离场合的核心优势;②深入理解三重移相控制策略的设计机理、控制自由度分配及其在效率优化中的关键作用;③构建并调试可用于科研论文撰写、项目申报或实际系统验证的高保真Simulink仿真模型,支撑理论分析与实验对比。; 阅读建议:建议结合MATLAB/Simulink平台进行动手实践,重点关注主电路拓扑搭建、移相控制模块设计、驱动信号时序配置及ZVS实现条件的仿真观测,推荐通过对比SPS、DPS与TPS三种模式的稳态与动态响应曲线,深入掌握各控制策略的适用边界与优化方向。
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!

3,425

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧