WIX:如何在卸载时显示一个复选框,如果选中该复选框,将触发自定义操作?

WIX: How to Display a check box on uninstall that is if selected, will trigger a custom action?

我正在使用 WIX,我想在卸载过程中显示一个默认选中的复选框(例如 删除应用程序相关文件) 如果被选中,将触发一个自定义操作,该操作将删除一些与应用程序相关的文件夹。 我的要求是:-

  1. 卸载应用程序时默认选中的复选框。
  2. 将在卸载时触发的自定义操作,并且仅在选中复选框的情况下。
  3. 将要删除的文件夹位置传递给自定义操作;我知道这可以用 属性 元素来完成,但我不能那样做。

如果您为产品的安装程序提供 MSI 并将其注册为由控制面板卸载,则无法覆盖 'Uninstall' 按钮以显示任何自定义对话框。默认情况下 windows 将调用“msiexec /x ”来卸载产品。此命令将 运行 具有 'basic' UI 的 MSI,跳过所有对话框。

我能想到的几个选项:

  • 在您的 MSI 中设置 ARPNOREMOVE=1,以便用户只能从控制面板 运行 'Change' 或修改安装。这样您就可以显示自定义对话框。
  • 将您的 MSI 包装在引导程序中(如 WiX 的刻录),以便引导程序处理控制面板中的卸载过程。