Wix主要升级:如何防止重新安装Windows服务?

Mir*_*anu 14 windows-installer wix

我正在开发一个应该安装多个Windows服务的安装程序.我们经常制作新版本(使用新的.msi文件),并且我们使用主要升级使其易于安装在以前的安装中.

问题是我们需要更新服务文件而不覆盖服务配置(例如帐户用户名和密码).

我们使用ServiceInstallServiceControl保存该服务的组件内部exe文件.有没有办法使ServiceInstall条件的执行(使用类似条件REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE)所以升级时没有卸载服务(刚刚停止,所以我们可以升级文件)?

一种解决方案是使用自定义操作,但也许有更好的方法?

谢谢!

Mir*_*anu 11

我好像在寻找错误的地方.我的问题的解决方案是添加NOT UPGRADINGPRODUCTCODEDeleteServices标准操作.

这解决了我的问题.这种方法的警告msi是删除(或不删除)当前文件安装的所有服务.所以我无法在升级时有选择地删除/保留服务.这对我很好,但是 - 我要求在升级过程中保持服务登录信息(但不是实际的服务代码).

更新:条件DeleteServices可从InstallExecuteSequence元素中的WiX访问.