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

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

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

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

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

【问题讨论】:

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

标签: c# windows visual-studio visual-studio-2010 uninstallation


【解决方案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 内存中。关掉就好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 2019-07-03
      • 2012-05-26
      • 2012-04-06
      • 1970-01-01
      相关资源
      最近更新 更多