我正在使用 WIX 3.7。我有一个基于 BryanJ 源代码的自定义托管引导程序:http: //bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/
安装程序工作正常,但我想检测添加/删除程序中按下的按钮。我的意思是用户是否想要修复或更改已安装的应用程序。目前我只是打开一个带有可能选项的窗口(用于卸载和更改)。
谢谢
我正在使用 WIX 3.7。我有一个基于 BryanJ 源代码的自定义托管引导程序:http: //bryanpjohnston.com/2012/09/28/custom-wix-managed-bootstrapper-application/
安装程序工作正常,但我想检测添加/删除程序中按下的按钮。我的意思是用户是否想要修复或更改已安装的应用程序。目前我只是打开一个带有可能选项的窗口(用于卸载和更改)。
谢谢
我认为它的工作方式是引导程序将适当的卸载和修复命令放在注册表中:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<productCode>
例如,当我查看此位置的 WiX 3.7 条目时,它有一个名为ModifyPath
value的注册表项"C:\ProgramData\Package Cache\{963ac4b4-a882-4471-8db9-c4adc7b42dc4}\WiX37.exe" /modify
。
因此,您可以解析/modify
用于修复的开关的命令行,以及类似的/uninstall
用于卸载的开关。
看看在属性LaunchAction
中传递的枚举:Command.Action
public enum LaunchAction
{
Unknown,
Help,
Layout,
Uninstall,
Install,
Modify,
Repair,
UpdateReplace,
UpdateReplaceEmbedded,
}