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

问题描述:

我有一个C#应用程序。除此之外的所有工作正常:运行windows卸载程序时关闭应用程序

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

对于无法读取隐含问题的人......“如何在卸载时使应用程序关闭?”。

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

+0

也许,我们要问的东西之前,你** **应该这样做。你错过了一个问题! – 2011-05-05 13:27:09

+0

如果应用程序仍在运行,您可以正确卸载它吗?我不认为.exe被删除。 – Gabriel 2011-05-05 13:33:05

+0

它被删除。唯一的问题是它在某处仍然存在。我不能成为某种倾听者吗?当X打开时添加/ rem prg关闭它? – zozo 2011-05-05 13:46:16

也许它是开放的,因为它是在RAM内存中。关闭它。

在您的安装项目(我假设你已经生成使用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 
} 

该类'卸载方法将在用户卸载您的应用程序时执行。

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

+0

使用点击一次安装...没有为它创建一个特殊的安装程序。但我会试一试:) Ty。 – zozo 2011-05-05 13:35:24

这就是它的工作原理。

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

你将不得不一些自定义代码添加到卸载操作,以获取应用程序卸载之前关闭