2009-10-23 115 views
2

我遇到了一個複雜的情況,那裏有兩個安裝包。一個取決於另一個的安裝。並且卸載必須以正確的順序完成。在WiX中發出警告

我有很多麻煩,讓條件工作,以防止一個被卸載,如果另一個仍然安裝。我一直在制定條件,防止卸載 - 無論如何 - 這是非常混亂的清理...

所以我現在想要的是提出一個警告消息,當一個條件滿足。類似於「警告:您應該在卸載該軟件包之前卸載X」,並且使用「退出」和「忽略」按鈕。有沒有辦法在WiX 3中發出有條件的警告?

+0

如果應用程序緊密耦合,它實際上聽起來像一個單一的應用程序?在大多數情況下,我主張將應用程序拆分爲單獨的文件,以便於維護和未來的靈活性,但是如果耦合程度與您描述的一樣強大,那麼它看起來好像更好地作爲單個程序包提供。一個快速而骯髒的解決方案可能是使其中一個設置成爲系統設置(隱藏添加/刪除程序):http://msdn.microsoft.com/en-us/library/aa367750(VS.85).aspx – 2009-10-24 23:12:39

+0

我需要這些是獨立的安裝程序。哪裏可以安裝沒有其他。但另一個取決於第一個。由於許可原因,他們不能成爲一名安裝人員。 – Jono 2009-10-27 15:24:52

回答

1

看起來好像一個(產品A)是另一個(B)的先決條件?

如果是這樣,可能最好的辦法是防止安裝B,如果缺少A(沒有「忽略」選項)。要做到這一點:

  • 決定你如何可以驗證是否存在(即在此安裝程序創建註冊表特定條目:爲您打造它,你可以將其添加爲組件之一)
  • 添加<物業>與相應的搜索到它(即RegistrySearch)
  • 添加<條件>到<產品>

一個例子可以即這裏找到:http://www.mail-archive.com/[email protected]/msg31789.html

此外,您可以爲B安裝A作爲先決條件(從而使最終用戶更容易)創建引導程序。

如果「忽略」選項確實是必須的,我會用文本+按鈕創建一個新對話框,並將其添加到設置序列中。但我不會推薦這個選項,它不支持無提示安裝的情況。

在Windows Installer 4.5中還有一個替代方案 - 多包安裝。但我從來沒有使用過。它還會強制您的軟件的用戶擁有Windows Installer 4.5或更高版本(自Vista SP2以來,始終在Windows中)。