当InstallShield执行时,我们让它启动一个单独的安装程序(在安装阶段之前)安装一个对程序至关重要的小型SQL服务器。仅供参考,SQL服务器是Firebird SQL。当用户重新安装程序时,我们需要终止Firebird SQL服务器,它只是作为后台可执行文件运行。我们研究了强制终止exe的效果,并没有经历任何负面影响。
所以我的问题是我们如何在InstallShield中确定外部程序是否正在运行并终止程序(如果是的话)?我想要检测它是否正在运行的唯一原因是为了避免在安装过程中可能阻碍或抛出错误的任何错误。如果这不是问题,如果我们确定它是否正在运行,我可能会更少关心。
编辑:实际上,我们只想杀死exe,因为我们正在重新安装它。所以,如果可能的话,有没有办法告诉InstallShield如果另一个exe正在运行则跳过执行exe?
答案 0 :(得分:0)
将Firebird安装为服务,然后使用ServiceControl表停止服务。我无法想象终止SQL服务器引擎会带来什么好处。
如果你真的想杀了它(希望你在复制一个新的数据文件,因此腐败不是问题),那么看看http://www.installsite.org/pages/en/isp_ext.htm上的“列出并关闭正在运行的应用程序”样本
答案 1 :(得分:0)
这个问题有两种方法:
如果正在运行,则跳过第二个产品(您的SQL服务器)。为此,您可以使用自定义操作来检测正在运行的进程,并根据结果设置安装程序属性。然后,该属性可用于调节第二个安装程序。
第二种方法是在执行修复时完全卸载并重新安装第二个产品:
未安装或重新安装