【发布时间】:2018-04-30 04:04:12
【问题描述】:
我的要求如下:
如果应用程序的版本例如12.0 安装在
C:\Folder1并且 13.0 版本的安装程序将安装在文件夹C:\Folder1中,然后 13.0 版本的安装程序应静默卸载 12.0 版本并安装最新版本 13.0如果应用程序的版本例如12.0 安装在
C:\Folder1并且版本 13.0 的安装程序将安装在文件夹C:\Folder200中,那么版本 13.0 的安装程序应安装最新版本并保留版本 12.0
我尝试过的事情:
如果我使用升级码方法卸载之前的版本,那么即使之前的版本安装在系统的任何位置,也会发生之前版本的卸载。
-
使用自定义操作 - 创建一个 vbscript 以使用 WindowsInstaller.Products 数据读取已安装的产品,并使用产品代码创建一个命令以使用“msiexec.exe /x ProductCode”卸载应用程序
- 在安装屏蔽项目的“文件传输之前”部分中添加此自定义操作时,会弹出“应用程序正在安装版本并等待它完成该过程”的弹出窗口。
- 自定义操作的“等待操作”属性设置为是。
- 我尝试将其设置为“否”,但仍然出现相同的弹出窗口。
- 如果我在 install shield 项目的“设置完成后成功对话框”部分添加自定义操作,则安装两个版本,并且在 vbscript 执行后,它会卸载以前的版本。 这种方法的问题是,当我双击应用程序的桌面图标时;它开始安装并显示安装进度的弹出窗口。这会让客户感到困惑。 所以这种方法不适合。
我们没有在注册表中添加任何数据,因此无法使用注册表方法卸载以前的版本。
这是任何软件的一个非常基本的要求,但我无法弄清楚如何实现这一点。如果有人有一些指示,请告诉我。
我有 Installshield 限量版 2015 和 Visual Studio 2015 Professional。
【问题讨论】:
标签: installation windows-installer installshield custom-action