在安装新文件之前和之后,如何在次要升级上运行自定义操作?

问题描述

在次要升级期间,我需要运行一个自定义操作来停止我的某些进程,然后再用msi系统替换可执行文件(因为它们无法被用户或msi系统杀死,因为它们将立即重新启动)。同样在安装新文件后,我需要重新启动所有组件。因此,我需要在次要升级期间先运行InstallScript,然后在系统尝试替换文件之前先运行InstallScript,然后在次要升级完成后立即运行InstallScript。 InstallShield项目是Basic MSI。 因此,我已经尝试使用两种条件对第一个自定义操作进行排序,使其在InstallInitialize之后运行:

未安装或((已安装且未重新安装)且未移除〜=“ ALL”)

IS_MInor_UPGRADE

它看起来好像没有执行,因为“自定义操作”假设要启动InstallMessage函数,该函数一开始就具有MessageBox,但我看不到它。在系统上下文中,脚本内执行设置为“延迟执行”。

因此,在完成MSI之后发生的事情是MSI系统无法就地替换二进制文件,因为它无法终止进程(因为我的“自定义”操作不起作用),因此它带来一个对话框,要求重新启动(之后一切正常)。这就是我要不惜一切代价避免的事情。它实际上将旧文件移动到某个%temp%位置,并将新文件复制到原始安装路径,但是从旧映像加载的旧进程仍在运行。

那么关于在安装新文件之前和之后立即在次要升级上运行自定义操作的任何想法?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)