2011-10-24 166 views
0

我正在编写Windows服务。安装完成后,Windows服务将复制应用程序并将其保存在特定路径中。以编程方式恢复Windows服务

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

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

这是如何实现的?

+0

有关http://stackoverflow.com/questions/7525332/restoring-old-application-during-installation-in-vs-net – Damith

+0

但MSI不这样做。 –

回答

0

当创建你需要指定以下的安装程序:

  • 集中删除以前安装的真
  • 设定的检测新版本真
  • 你的C#程序的版本必须在每次部署 增加你应该将安装程序的版本更改为更高版本,并会要求您更改产品代码,请选择是。

如果您执行上述所有步骤,安装程序将自动取消之前的版本,并尝试安装新版本。

UPDATE:

要添加自定义操作,请按照下列步骤操作:

  1. 在Solution Explorer中,用鼠标右键单击ServiceSetup,指向视图,然后单击自定义操作。
  2. 右键单击“自定义操作”,然后单击“添加自定义操作”。
  3. 单击应用程序文件夹,然后单击确定。
  4. 单击yourservice(Active)的主输出,然后单击确定。注意主输出显示在Install,Commit,Rollback和Uninstall下。

通过以上所有步骤创建两个版本的安装程序。当您运行secound时,以前的版本将从系统中删除,安装程序将安装最新的vesrion,并且如果发生错误,则回滚将由安装程序处理。

+0

谢谢。 我已经完成了上述步骤。如果安装失败,我需要恢复旧版本。这是Windows服务的安装,我们需要卸载旧版本以安装新版本。如何才能实现? –

+0

MSI在安装非服务exe和服务exe时的工作方式也不同.MSI自动卸载非服务exe中的以前版本。 –

+0

安装者是否也会正常停止服务? – Sebastian

相关问题