运行 Windows 卸载程序时关闭应用程序

Posted

技术标签:

【中文标题】运行 Windows 卸载程序时关闭应用程序【英文标题】:Close application when running windows uninstaller 【发布时间】:2011-08-19 09:34:27 【问题描述】:

我有一个 C# 应用程序。除了这个,一切都很好:

当我从添加/删除程序中卸载应用程序时,如果应用程序未关闭,卸载后它将保持打开状态。

对于那些看不懂隐含问题的人...“我怎样才能让应用程序关闭?卸载时?”。

如果您需要任何详细信息,请询问。

【问题讨论】:

也许,在我们提出问题之前,应该这样做。您错过了一个问题! 如果某个应用仍在运行,您能否正确卸载它?我认为 .exe 没有被删除。 已删除。唯一的问题是它保留在某个地方的 ram 中。我不能做某种听众吗? X 什么时候打开 add/rem prg 来关闭它? 【参考方案1】:

这就是它的工作原理。

卸载会将其从磁盘中删除,而不是从内存中删除。

您必须在卸载操作中添加一些自定义代码才能在卸载前关闭应用

【讨论】:

【参考方案2】:

在您的安装程序项目中(我假设您已经使用 Visual Studio 中的安装程序项目生成了一个 MSI 安装程序),您应该包含一个从安装程序基类继承的类:

[RunInstaller(true)]
public class MyInstaller: Installer

    public override void Install(IDictionary stateSaver)
    
        base.Install(stateSaver);
    


    public override void Uninstall(IDictionary savedState)
    
        base.Uninstall(savedState);

        //TODO: Code to kill the live instance(s)
    

    // Other override methods here if necessary

当用户卸载您的应用程序时,将执行此类的 Uninstall 方法。

在此方法中,您可以选择正在运行的进程列表并终止应用的所有活动实例。

【讨论】:

已使用单击安装...没有为其创建特殊安装程序。但我会试一试:) Ty.【参考方案3】:

也许它是打开的,因为它在 RAM 内存中。关掉就好了。

【讨论】:

以上是关于运行 Windows 卸载程序时关闭应用程序的主要内容,如果未能解决你的问题,请参考以下文章

通过 Windows 10“设置”应用程序和旧版控制面板卸载应用程序有啥区别? [关闭]

卸载时未删除Windows服务(WIX 3)

windows10 怎么把人脉卸载

我如何在 Windows 中使用 cmd/powershell 卸载受密码保护的应用程序 [关闭]

INNO SETUP卸载时为啥不能强制删除安装目录

NSIS 的卸载程序运行速度非常快