2012-02-03 102 views
4

我有一個已經安裝在服務器上的windows服務,我有一個新版本的可執行文件和鏈接程序集。我用於安裝新版本的正常的程序是:我可以XCOPY部署Windows服務嗎?

  1. 停止服務
  2. 卸載使用InstallUtil /u
  3. 覆蓋服務的可執行文件和鏈接組件用新的服務
  4. 安裝服務使用InstallUtil
  5. 啓動服務

我想知道如果我米做得太多?有隻執行下列任何問題:

  1. 停止服務
  2. 覆蓋服務的可執行文件和鏈接組件用新的
  3. 啓動服務

我不認爲卸載/安裝是必要的,但找不到任何正式確認。

+2

最明顯的問題是涉及到系統關閉;出於這個原因,我傾向於使用'AppDomain's - 服務可以自我更新(在可寫的地方執行* actual *系統),而exe只是處理進程啓動和應用程序域管理;零停機時間來更新 – 2012-02-03 16:46:38

+2

@MarcGravell這是一個絕妙的主意,聽起來很可重用。我沒有用AppDomains做過多的編程,所以有一個框架或模板或博客文章,你可以指出我會開始嗎? – 2012-02-03 18:03:10

回答

4

如果服務已經安裝,是的,你可以xcopy部署你的新的可執行文件和程序集,沒有任何問題。

所有installutil正在創建指向服務可執行文件的相應註冊表項。如果您以前運行過installutil來創建這些條目,那麼當您更換可執行文件時,無需重複此步驟。

+0

你的回答有點誤導。或者說,你正在回答標題中的問題(「我可以XCOPY」 - >是),但是他提出的最後一個問題是「執行以下操作時是否有任何問題」,答案是** no ** :-) – 2012-02-03 16:39:20

+1

公平點:)相應地編輯 – Cocowalla 2012-02-03 16:40:39

相關問題