2011-10-24 109 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

相關問題