2013-03-05 72 views
2

我有一個自定義操作,在.msi部署文件後運行UI。此用戶界面設置配置,並將各種事情部署到各個地方(SQL服務器等)。 UI本身在C#.NET 2.0)中運行。我怎麼可能得到安裝程序的狀態(即升級/安裝/修復和無聲/最小UI/fullUI等)?微星自定義操作安裝程序狀態交互

基本上,我如何從基於C#/ .NET 2的自定義用戶界面訪問安裝程序所處的模式,以便我可以在我的代碼中處理這些狀態?

(這類似於堆棧溢出問題How to add a WiX custom action that happens only on uninstall (via MSI)?,但並不完全。)

回答

1

你可以嘗試通過屬性的值作爲參數傳遞給您的自定義操作,讓你這個信息。僅當包在維護(修改或刪除)中運行時纔會設置「Installed」屬性。要區分修改和刪除這些,您可以檢查「REMOVE」屬性。這裏列出了您需要在自定義操作中創建的條件。

  1. 條件安裝:未安裝
  2. 條件卸載:REMOVE = 「ALL」
  3. 條件維護:安裝並REMOVE <> 「ALL」

要進行升級,如果定義了較舊的版本,則需要使用您定義的屬性進行設置。假設您使用Stack Oveflow問題How to implement WiX installer upgrade?中的此方法。

對於包的UI級別,您可以檢查屬性UILevel

+0

看起來這可能是一個可行的選擇(而不是爲安裝程序創建一個新的自定義操作和新的,脫節的代碼。唯一的問題是鑽研WiX(但我懷疑我必須這樣做) – Izzy 2013-03-05 11:20:58

相關問題