C# 以编程方式还原Windows服务

C# 以编程方式还原Windows服务,c#,.net,windows-services,C#,.net,Windows Services,我正在写一个Windows服务。安装后,Windows服务将复制应用程序并将其保留在特定路径的备份中 现在我想重新安装Windows服务的更高版本 我卸载旧版本的Windows服务,然后尝试安装最新版本。但如果失败,则需要从相关路径恢复旧服务 如何实现这一点?创建安装程序时,需要指定以下内容: 将“删除以前的安装”设置为True 将检测新版本设置为True 您的C程序的版本必须随着每次部署而增加 您应该将安装程序的版本更改为更高的版本,它会要求您更改产品代码,请选择“是”。 如果您执行上述所有步

我正在写一个Windows服务。安装后,Windows服务将复制应用程序并将其保留在特定路径的备份中

现在我想重新安装Windows服务的更高版本

我卸载旧版本的Windows服务,然后尝试安装最新版本。但如果失败,则需要从相关路径恢复旧服务


如何实现这一点?

创建安装程序时,需要指定以下内容:

将“删除以前的安装”设置为True 将检测新版本设置为True 您的C程序的版本必须随着每次部署而增加 您应该将安装程序的版本更改为更高的版本,它会要求您更改产品代码,请选择“是”。 如果您执行上述所有步骤,安装程序将自动取消安装以前的版本,并尝试安装新版本

更新:

要添加自定义操作,请执行以下步骤:

在解决方案资源管理器中,右键单击服务设置,指向“视图”,然后单击“自定义操作”。 右键单击“自定义操作”,然后单击“添加自定义操作”。 单击应用程序文件夹,然后单击确定。 单击ServiceActive的主输出,然后单击确定。请注意,主输出显示在安装、提交、回滚和卸载下。
使用以上步骤创建两个版本的安装程序。运行secound time时,系统将删除以前的版本,安装程序将安装最新的vesrion,如果发生错误,安装程序将处理回滚。

与相关,但MSI不会这样做。谢谢。我已经完成了上述步骤。如果安装失败怎么办,我需要还原旧版本。这是Windows服务的安装,我们需要卸载旧版本以安装新版本。这是怎么可能的?MSI在安装非服务exe和服务exe时的工作方式也不同。MSI会在非服务exe中自动卸载以前的版本。安装程序还会停止安装吗正常服务?在卸载旧版本之前,手动停止服务。另外,只有在正确卸载旧版本后,才能开始安装新版本。是否使用自定义操作进行角色回退?