【问题标题】:Prevent uninstall in setup project with OnBeforeUninstall使用 OnBeforeUninstall 防止安装项目中的卸载
【发布时间】:2011-05-16 19:41:45
【问题描述】:

我覆盖了OnBeforeUninstall 以阻止我的应用程序的安装项目在某些情况下卸载它,但它似乎只是没有被调用并且没有任何效果。

protected override void OnBeforeUninstall(IDictionary savedState)
{
    if (ApplicationIsBusy())
        throw new ApplicationException("Prevent uninstall while application busy.");
}

我可以通过覆盖Uninstall 方法来取消卸载,但是到那时安装项目已经关闭了我的应用程序。当我的应用程序忙碌时,我如何“失败”卸载尝试安装项目在运行时尝试关闭它并中断我的工作进程?

【问题讨论】:

标签: c# setup-project uninstallation


【解决方案1】:

在调用您的自定义代码之前,请调用 base.OnBeforeUninstall(savedState) 以便注册的委托接收事件,从而允许您的自定义代码在卸载之前执行。

protected override void OnBeforeUninstall(IDictionary savedState)
{
    // Add this
    base.OnBeforeUninstall(savedState);

    if (ApplicationIsBusy())
        throw new ApplicationException("Prevent uninstall while application busy.");
}

【讨论】:

    【解决方案2】:

    确保在安装项目中您选择了自定义卸载操作,这可能是您的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-11
      • 2022-07-07
      • 2016-01-14
      • 1970-01-01
      • 2020-08-24
      • 2017-01-07
      • 2019-01-04
      相关资源
      最近更新 更多