2010-04-06 65 views
0

使用Wix3,它確保正在安裝的Windows服務依賴於已安裝在目標計算機上的服務,但我需要它的微不足道做相反的事情 - 即作爲我安裝的一部分,我需要修改現有服務(即已安裝在目標機器上)的服務依賴關係,以確保該服務依賴於我正在安裝的服務。WiX - 將現有服務修改爲依賴於我正在安裝的服務

有沒有簡單的方法來使用WiX來做到這一點?或者我是否需要編寫自定義操作?

編輯 - 該場景圍繞MS Office Communications Server將向其分派消息的自定義Windows服務。一旦OCS配置爲分派到該服務(並將其標記爲關鍵服務),那麼該服務必須啓動並運行,以便啓動OCS服務。所以我們需要依賴關係來確保我們的服務在OCS之前啓動,並且通常在安裝之後手動添加依賴關係。

我知道,它也讓我不寒而慄。

非常感謝,

保羅

+0

這聽起來像是微軟在這個問題上搞錯了。 :-)如果我要做一個這樣的可擴展服務,我可以基本上注入後期綁定的依賴關係,那麼我會使這些依賴關係的錯誤處理更加健壯。我討厭讓幾個人自己注入我,然後我失敗,如果其中一個失敗。 但這聽起來並不像你有更多的選擇,然後去與你有什麼和寫一個自定義的行動來註冊關係。 – 2010-04-07 13:35:22

回答

1

這是一個分量違反規則的形式,因爲Windows安裝程序僅適用於密鑰文件創建服務,你會創建重複的組件來控制服務。

基本上你用屬於一個不屬於你自己的組件的屬性頂起來。當寫這個服務時,我猜測它對你的服務一無所知,所以它怎麼可能依賴你的服務?

我真正要問的是你想解決什麼問題?如果你真的必須在WiX/MSI中完成它,那麼你最好使用自定義操作來調用服務控制管理器並添加依賴關係。如果安裝服務決定撤銷您的更改,請不要驚訝,因爲它與它的配置方式不匹配。

+0

謝謝克里斯託弗。我期待着這樣的答案。我已編輯添加一些澄清,但非常高興,這是「答案」。歡呼 – 2010-04-07 08:05:59

+0

嗨克里斯托弗。我需要編寫自定義操作來調用SCM。你可以添加一個代碼示例嗎? – Reflection 2015-02-27 00:55:08

+0

對不起,諮詢以小時爲單位。 – 2015-02-27 02:47:25