我创建了一个引导程序 EXE 文件,该文件具有 .Net 先决条件和我的 MSI 链接在一起。我能够使用此 EXE 成功安装/卸载。
现在客户想要一个条件,如果应用程序打开并且用户尝试卸载它,他应该看到警告消息。是否可以使用 standardBootstrapper 完成这项工作,或者我应该编写自定义 BA。如果自定义是唯一的解决方案,我真的不知道应该为此编写哪些条件和代码。任何灯光都会有很大帮助。
如果您使用标准引导程序,最好的方法是将自定义操作添加到您的 msi。 只需添加属性(例如 IsRunning='0' ),并在程序运行时使用自定义操作更改它。
[CustomAction]
public static ActionResult CustomAction(Session session)
{
if (Process.GetProcessesByName("process_name").Length > 0)
{
session["IsRunning"] = 1;
}
return ActionResult.Success;
}
有关自定义操作的更多信息,请参阅此答案。 这里是卸载自定义操作示例
然后将对话框添加到将根据该属性显示的序列中。
如果您使用的是 自定义引导程序,您可以在运行您的 msi 之前或在显示 UI 之前将该检查添加到您的代码中
只需将其添加到您的 BootstrapperApplicationRef 标记中即可。
ShowFilesInUse="yes"