簡體   English   中英

在卸載過程中如何防止WIX條件檢測到安裝程序在運行?

[英]How to prevent the WIX condition detecting when the installer is running in the uninstalling process?

我正在學習Windows安裝程序xml(WIX),並且在我的代碼中有一個條件,該條件可以在安裝軟件之前檢查是否已安裝軟件-A。 我希望可以在安裝軟件-A后安裝我的軟件,但是在卸載軟件時,不應觸發這種情況。

捆綁軟件在安裝過程中可以正常工作,這意味着,如果已經安裝了軟件-A,它將繼續安裝。 但是,如果根本未安裝軟件-A,則捆綁軟件將觸發條件檢查過程,顯示條件消息並停止安裝。 我嘗試了兩個條件“未安裝”和“已安裝”,但是即使在卸載過程中,條件檢查過程仍始終觸發。 這意味着無論捆綁程序是什么過程,總會搜索相同的注冊表。

安裝程序的邏輯很簡單,但是我是Windows安裝程序xml技術的初學者。

<bal:Condition Message="Software-A is Required.">
   <![CDATA[NOT Installed OR SoftwareAInstalled]]>
</bal:Condition>

<util:RegistrySearch Id="SoftwareAInstalled"
                 Root="HKLM"  
                 Key="SOFTWARE\SoftwareA\"
                 Variable="SoftwareAInstalled"
                 Result="exists" />

我想知道在安裝程序正在卸載時如何防止檢查過程。 或任何其他建議,將不勝感激。

由於要檢測捆綁包的狀態,因此應該查看“ 刻錄內置變量” WixBundleInstalled將為您提供當前Bundle的安裝狀態。 因此

WixBundleInstalled OR SoftwareAInstalled

如果已經安裝了當前捆綁軟件,或者您正在執行捆綁軟件的全新安裝並且軟件A已經存在,則將允許安裝程序繼續。

我現在沒有時間進行驗證,但是看起來您可以使用:

Installed OR SoftwareAInstalled

我將大寫后者的屬性,但是可以在命令行中設置它。 我想它應該與您所擁有的一起工作。 目前無法測試。 提示:請記住要在silent installation mode進行測試,包括modifyrepairself-repairuninstallmajor upgrade etc ,需要大量檢查。

先前對類似問題的解答:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM