当我们的安装程序失败时,默认情况下会启动回滚过程。
由于我们的安装程序涉及Windows服务,因此我们使用Optional Rollback Script
属性在安装后发生故障时关闭并删除这些服务。
我们的问题是某些进程仍然分配给某些端口,这种情况导致用户无法在不先杀死这些端口的情况下删除安装目录。
现在,在命令行中,使用以下命令很容易找到并终止这些进程:
netstat -ano | findstr :<portNumber>
taskkill /PID <processId> /F
我的问题是,我无法通过Run Script
操作运行这些命令,获取其进程ID并关闭它们。 (不管怎样,我都无法得到输出)
安装程序中是否有这样的内置选项?如果没有,还有其他方法吗?
答案 0 :(得分:2)
您可以使用WinProcesses API来终止进程:
https://resources.ej-technologies.com/install4j/help/api/com/install4j/api/windows/WinProcesses.html
至于调用netstat,你必须调用
netstat -ano
使用&#34;运行可执行文件或批处理文件&#34;行动并设置其&#34;重定向标准输出&#34;属性到&#34;到安装程序变量&#34;。然后你可以在&#34;运行脚本&#34;中解析输出。动作。