我可以使用Inno Setup作为服务和正常流程吗?

时间:2015-11-26 15:21:29

标签: inno-setup

我正在使用Inno Setup创建安装程序和更新程序 我希望更新程序能够作为服务和正常进程运行(取决于我是否以管理员身份运行安装程序)。
我创建了能够作为服务和正常流程运行的应用程序,因此我可以假设这在inno设置中也是可以实现的。
我可以创建一个行为类似于服务和正常流程的安装程序吗?

1 个答案:

答案 0 :(得分:2)

Inno安装程序无法运行作为服务,因为它不是服务应用程序。

可能让服务流程从非用户上下文启动Inno安装程序到例如。自动升级。但是,这样做需要非常小心。

例如,您必须:

  • 使用/VERYSILENT /SUPPRESSMSGBOXES /NORESTART启动安装程序以隐藏所有标准用户界面。

  • 使用AppMutex(在Global命名空间中使用相应的互斥锁)确保安装程序在启动安装程序后等待服务自行终止。

  • 确保启动过程已提升为admin(请注意,这是一个安全风险,因为这意味着该服务在正常操作期间以管理员权限运行)。

  • 确保在启动安装程序之前,该服务非常确定它正在运行合法的升级包而不是某些恶意软件。强烈建议进行数字签名验证。

  • 确保脚本不使用MsgBox或以其他方式显示UI。 (如果需要进行交互式安装,请使用SuppressibleMsgBox。)

TLDR:尽管你可以,但你不应该这样做。很难做到正确,打开安全漏洞非常容易。只需让用户自己下载并运行安装程序。

相关问题