我正在使用WIX 3.7。我有一個基於 BryanJ源代碼的自定義託管引導程序:http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/WIX檢測卸載或更改單擊添加/刪除程序
安裝程序工作正常,但我想檢測添加/刪除程序中按下的按鈕。我的意思是用戶是否想要修復或更改已安裝的應用程序。目前,我只是打開一個可能的選項(用於卸載和更改)的窗口。
感謝
我正在使用WIX 3.7。我有一個基於 BryanJ源代碼的自定義託管引導程序:http://bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/WIX檢測卸載或更改單擊添加/刪除程序
安裝程序工作正常,但我想檢測添加/刪除程序中按下的按鈕。我的意思是用戶是否想要修復或更改已安裝的應用程序。目前,我只是打開一個可能的選項(用於卸載和更改)的窗口。
感謝
看看在LaunchAction
枚舉該公司在Command.Action
屬性傳遞:
public enum LaunchAction
{
Unknown,
Help,
Layout,
Uninstall,
Install,
Modify,
Repair,
UpdateReplace,
UpdateReplaceEmbedded,
}
我認爲它的工作方式是引導程序提出相應的卸載和修復命令,在註冊表中的位置:
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
開關。
也可能是引導程序引擎爲你做這件事,它只是訂閱適當的事件和檢查事件參數的問題,但如果是這種情況,我不知道如何獲取該信息。 – BryanJ
Bob的答案是要走的路,實際上是我用我生產的引導程序通過ARP檢測卸載方法。在發佈我的最初答案之前,必須有一個大腦放屁,因爲我試圖尋找如何在自己的代碼中檢測到它,並錯過了它。雖然你可以使用我的解決方案,但鮑勃的要好得多。 – BryanJ
謝謝你們。 –