我有一个复杂的 WIX 安装程序,可以执行各种任务/MSI。其中一个 MSI 安装一项服务,之后数据库 MSI 运行并更新该服务的 app.config 以包含正确的连接字符串。
目前,该服务在安装后启动(这是在数据库 MSI 运行之前),这意味着它的连接字符串不正确。如何使服务作为安装程序中的最后一项启动,以便它具有正确的连接字符串。
我认为这可能位于 Bootstrap 的 bundle 中,但我无法让它工作。以下是 Product.wxs 中启动服务的当前代码。
<ServiceControl Id="StartEMService" Start="install" Name="EMService"/>
最佳答案
bundle 仅在包上运行,因此不支持控制服务之类的操作。您的数据库包应该有一个 ServiceControl
元素来停止(以防万一)并重新启动服务。将更新配置文件的操作安排在 StartServices
标准操作之前。
关于service - 所有安装操作完成后启动服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18212725/