c# - WIX:如何在卸载时显示复选框,如果选择该复选框,将触发自定义操作?

标签 c# wix windows-installer wix3.8

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

  1. 卸载应用时默认选中的复选框。
  2. 卸载时且仅在选中该复选框时才会触发的自定义操作。
  3. 将要删除的文件夹的位置传递给自定义操作;我知道这可以通过 Property 元素来完成,但我不能这样做。

最佳答案

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

我能想到的几个选项:

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

  • 关于c# - WIX:如何在卸载时显示复选框,如果选择该复选框,将触发自定义操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37773167/

    相关文章:

    c++ - 安装 msi 后无法显示 png 并在我的应用程序的某些代码部分发出警告

    wix - 在 WIX 安装程序中检查 RAM

    c# - 为什么东部时间和中部时间的日期时间偏移相同?

    c# - Notepad++ .NET 插件 - 获取当前缓冲区文本 - 编码问题

    wix - VS 2013 Express 中缺少 Wix 3.8 项目模板

    search - WIX - 注册表搜索返回错误的安装位置

    wix - MSI 安装程序扩展如何定位另一个应用程序的安装目录?

    c# - 已安装 msi 文件时确定 msiexec 退出代码

    c# - 如何比较用户创建类的所有元素

    c# - 将文件提取到桌面时为 "System.UnauthorizedAccessException"