2010-11-19 135 views
1

是否有可能/建議使用InstallService元素來安裝用託管代碼(C#)編寫的Windows服務? (我試了一下,它並安裝該服務,但該服務將無法啓動)如何從WiX安裝託管服務?

或者,這確實需要它調用Installutil自定義操作?

或者有另一種方式做到這一點?

回答

3

我現在正在研究wix自己,剛剛成功地使用標準的ServiceInstall/ServiceControl方式安裝/卸載託管服務(並且爲什麼不使用sc呢)。 從我閱讀並同意,使用自定義任務與installutil是considered a bad practice: 我曾經在我的.NET安裝程序安裝Perf Counters的,但現在我只是去wix way for it

通過我不得不添加的ServiceControl元素,以便服務已安裝(start屬性)後開始,更重要的是對我來說,卸載(刪除屬性)中徹底卸載的方式。

<ServiceControl Id='ControlStansWinService' Remove='both' Name='StansWinService' Start='install' Stop='both' Wait='yes' /> 

我已經發表迄今爲止的發現here,希望你能找到它有用。

+0

你是對的,這是可以使用託管服務<的ServiceControl>標籤,不需要調用InstallUtil。 我的特定服務在安裝程序類中有一堆定製,我不得不移動到MSI,但事實證明這是可行的。例如添加事件日誌源。 – Max 2010-11-24 18:36:17

+0

非常感謝。你救了我的一天:) – 2013-12-06 11:34:42

0

因爲它安裝的服務以及啓動和停止/上安裝和卸載刪除服務的各項工作,您應該使用WIX InstallService元素。如果使用自定義操作調用InstallUtil來安裝服務器,則必須使用CustomAction手動再次啓動和停止服務。

+0

你是對的,看到我下面的評論。謝謝! – Max 2010-11-24 18:37:37