2013-06-26 58 views
1

我正在使用WIX 3.7。我有一個基於 BryanJ源代碼的自定義託管引導程序:http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/WIX檢測卸載或更改單擊添加/刪除程序

安裝程序工作正常,但我想檢測添加/刪除程序中按下的按鈕。我的意思是用戶是否想要修復或更改已安裝的應用程序。目前,我只是打開一個可能的選項(用於卸載和更改)的窗口。

感謝

+1

Bob的答案是要走的路,實際上是我用我生產的引導程序通過ARP檢測卸載方法。在發佈我的最初答案之前,必須有一個大腦放屁,因爲我試圖尋找如何在自己的代碼中檢測到它,並錯過了它。雖然你可以使用我的解決方案,但鮑勃的要好得多。 – BryanJ

+0

謝謝你們。 –

回答

0

看看在LaunchAction枚舉該公司在Command.Action屬性傳遞:

public enum LaunchAction 
{ 
    Unknown, 
    Help, 
    Layout, 
    Uninstall, 
    Install, 
    Modify, 
    Repair, 
    UpdateReplace, 
    UpdateReplaceEmbedded, 
} 
0

認爲它的工作方式是引導程序提出相應的卸載和修復命令,在註冊表中的位置:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<productCode> 

因此,例如,當我看WiX 3.7條目在此位置,它有一個名爲ModifyPath的註冊表項,其值爲"C:\ProgramData\Package Cache\{963ac4b4-a882-4471-8db9-c4adc7b42dc4}\WiX37.exe" /modify

因此,您可以解析用於修理的/modify開關的命令行,以及類似地用於卸載的/uninstall開關。

+0

也可能是引導程序引擎爲你做這件事,它只是訂閱適當的事件和檢查事件參數的問題,但如果是這種情況,我不知道如何獲取該信息。 – BryanJ

相關問題