3

我对电子应用很陌生。我需要一些有关选举安装的帮助。我有一个Electron 桌面应用程序和一个windows 服务。我可以使用 package.json 启动和停止我预先安装的服务sudo-prompt。我正在使用包创建Windows 安装程序。electron-winstaller但我想将我的windows 服务与我的电子应用程序捆绑在一起。我的要求是,当我安装电子包时,它也应该安装我的服务,当我卸载我的包时,应该卸载该服务。

请帮帮我。任何线索,任何建议将不胜感激。如果您认为这应该通过其他方式来实现,那么请建议我。

4

1 回答 1

3

Electron 的 windows 安装程序打包程序给我一个特定的案例工具,在这种情况下可能会遇到限制。我会使用通用案例工具,例如免费和开源 Windows Installer XML 工具集(又名 WiX)。我还将与另一个名为 Industrial Strength Windows Installer XML aka IsWiX 的 FOSS 应用程序一起使用。

WiX 允许您使用 XML/XSD 域特定语言来描述和构建 MSI 数据库。它支持 MSBuild,以便与您的 CI/CD 管道轻松集成。IsWiX* 是一组项目模板和图形设计器,可提供自以为是的项目结构(脚手架)并大大加快学习曲线和实施。例如,您描述的这个安装程序可以在不编写单行 XML 的情况下完成。

有关更多信息,请参阅:https ://github.com/iswix-llc/iswix-tutorials

桌面应用程序和 Windows 服务教程应该**向您展示创作此安装程序所需了解的一切。基本上一直遵循桌面应用程序,然后跳到定义 Windows 服务的 Windows 服务教程的最后部分。

  • 我是 IsWiX 的维护者

** 这假设您的服务 exe 是与 Windows 服务控制管理器交互的适当 Windows 服务。如果它真的只是一个作为服务运行的控制台应用程序,则需要包含一个程序,例如 srvany.exe。这将需要一行手工制作的 XML 来扩展注册表中的服务定义,并使用正确的命令行值传递给您的 exe。可以在此处找到示例:Wix installer to replace INSTSRV and SRVANY for user defined service installation

于 2017-11-14T11:55:41.447 回答