我在Installshield中开发了一个基本的MSI包。为了使它静默安装,我只在构建时包含了MSI命令行参数“/ qb +”。这会按预期安静地安装它。
但是,当我再次执行相同的EXE以卸载以前安装的组件时,它实际上执行了重新安装或修复,但没有卸载。我想启动相同的EXE进行安装,然后再进行卸载。有可能吗?
的问候,
作者Abhijit
答案 0 :(得分:2)
这是因为默认情况下对已安装的软件包执行维护,并且默认维护不执行任何操作。您可以使用类似于How to get msiexec to install and/or reinstall as necessary的方法破解此问题,但不要使用REINSTALL,请尝试设置REMOVE并在UILevel>时清除它。 3或未安装。
答案 1 :(得分:1)
目前尚不清楚这是用于测试目的还是公开发布的EXE。如果是公开发布,我会不改变它的一般工作方式,符合“最不惊讶的原则”。换句话说,用户应该知道会发生什么。
我通常会避免使用setup.exe启动程序并支持单个压缩的MSI文件。它会更快地安装和卸载,因为它不会运行setup.exe的所有启动逻辑(检查任何先决条件,检查Installshield引擎,未知的Installshield内容 - 上帝知道它们在所有缓慢的情况下正在做什么),以及它将在浏览器中为用户提供上下文菜单,然后可以右键单击MSI并选择“卸载”以便轻松卸载软件包。