微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Visual Studio Installer 2015中使用Now Installer覆盖服务器

如何解决如何在Visual Studio Installer 2015中使用Now Installer覆盖服务器

我需要将安装程序的旧版本覆盖为较新的版本。我正在使用安装程序来安装Windows服务。 Visual Studio安装程序2015。

我使用属性“ RemovePrevIoUsversion” = true 更改了安装程序,但是由于未卸载服务而导致安装程序出错并尝试覆盖此设置。

错误1001。计算机上System.ServiceProcess.ServiceInstaller --CouslNot Star服务的OnAfterInstall事件处理程序中发生了异常

enter image description here

解决方法

简短答案/建议 :必须先停止服务,然后再进行安装/卸载/升级操作。 MSI内置了一些机制来做到这一点。 Hotlink to show how this is done using WiXServiceInstallServiceControl元素)。

Here is a proposed WiX quick start(链接噪声很大 各种各样的WiX和MSI主题-这是临时性的有机增长 链接答案)。


WiX Use a proper deployment tool是最佳建议,例如WiX。已知Visual Studio安装程序项目不灵活,并且在many other problemsshorter,list form)之间限制了服务安装。

特别是在这种情况下,您需要使用自定义操作来启动和停止服务(除非最新的Visual Studio安装程序项目中有我不熟悉的新结构-我认为没有)。 Custom actions are complex and error prone。正确的MSI工具使用内置的MSI结构来使服务安装更加可靠。

后处理 :有些人使用Orca or equivalent tools对MSI进行后处理,以将构造添加到ServiceInstallServiceControl使用Visual Studio安装程序项目构建MSI之后创建表格。不是火箭科学,而是麻烦而不推荐。

ServiceInstall ServiceControl :本质上,您需要编写ServiceInstall和{{3 }}表,以便以可操作的方式安装,启动,停止和卸载服务。实际上,只有少数几种组合才有意义。例如停止卸载并停止并开始安装。

WiX示例 How to install and start a Windows Service using WiX和一些服务安装的WiX示例:


高级安装程序 :以及用于服务安装的商业工具Advanced Installer的两个链接。不要低估与您相关的商业工具。 “仅当您的时间毫无价值时,某些工具才是免费的” 。 WiX很棒,但是很难学习并且总是需要时间:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。