如果应用程序打开并且用户想要卸载它,如何添加警告消息

问题描述

我创建了一个引导程序 EXE 文件,该文件将 .Net 先决条件和我的 MSI 链接在一起。我可以使用此 EXE 成功安装/卸载。

现在客户想要一个条件,如果应用程序打开并且用户尝试卸载它,他应该看到警告消息。是否可以使用标准引导程序来完成这项工作,或者我应该编写自定义 BA。如果自定义是唯一的解决方案,我真的不知道我应该为此编写哪个条件和代码。任何灯都会有很大帮助。

解决方法

如果您使用标准引导程序,最好的方法是向您的 msi 添加自定义操作。 Just add property(例如 IsRunning='0' ),并在程序运行时使用自定义操作更改它。

[CustomAction]
public static ActionResult CustomAction(Session session)
{
     if (Process.GetProcessesByName("process_name").Length > 0)
     {
        session["IsRunning"] = 1;
     }
     return ActionResult.Success;
}

有关自定义操作的详细信息,请参阅 this answer。然后here's卸载自定义操作示例

然后将对话框添加到将是 shown depending on that property.

的序列中

如果您使用的是 custom bootstrapper,则可以在运行 msi 或显示 UI 之前将该检查添加到您的代码中