前端之家收集整理的这篇文章主要介绍了
Wix主要升级:如何防止Windows服务重新安装?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在安装一个应该安装几个
Windows服务的安装程序.我们经常进行新的构建(使用新的.msi
文件),并且我们使用主要的
升级方法,以便在以前的安装中轻松安装.
问题是我们需要更新服务文件,而不会覆盖服务配置(例如帐户用户名和密码).
我们在保存服务exe文件的组件中使用ServiceInstall和ServiceControl.有没有办法使ServiceInstall执行条件(使用像REMOVE =“ALL”和NOT UPGRADINGPRODUCTCODE这样的条件),所以服务在升级时不会被卸载(刚停止,所以我们可以升级文件)?
一个解决方案是使用自定义操作,但也许有更好的方法?
谢谢!
看来我正在
错误的地方.
解决我的问题是将NOT UPGRADINGPRODUCTCODE
添加到DeleteServices标准操作中.
这修复了我的问题.这种方法的注意事项是删除当前msi文件安装的所有服务(或不删除).所以我无法在升级时选择性地删除/保留服务.这对我来说很好,但是我的要求是保持升级之间的服务登录信息(而不是实际的服务代码).
更新:DeleteServices的条件可以从InstallExecuteSequence元素中的WiX访问.