如何静默自动更新通过 NSIS 为所有用户/每台机器安装的电子应用程序?

How to silently auto-update an electron application that is installed via NSIS for all users / per-machine?

项目: 我们已经创建了一个 electron 应用程序,它使用 electron-builder 构建的 NSIS 安装程序交付给我们的用户(主要使用 Windows)。

场景: 我们的用户是将我们的应用程序安装到 Windows 终端服务器上的“C:\Program Files”文件夹中供其所有员工使用的公司。工作人员 - 使用我们的软件并在新版本发布后看到相关更新通知 - 大多数时候由于缺少必要的权限而无法安装更新。

问题: 我们不仅要解决上述问题,还要更进一步:我们希望我们的应用程序能够自动更新。在上述情况下,有哪些可能的解决方案可以实现这一点?

如果您改为按用户安装,那么普通用户当然可以写入该目录。

另一种选择是切换到 MSI。普通用户可以在没有 UAC 提升的情况下修补已签名的 MSI 包。这叫做User Account Control (UAC) Patching.

第三个选项是创建运行安装程序的 NT 服务。可以配置服务,以便普通用户可以启动它们。计划任务也可能有效。