自定义卸载操作c#

时间:2012-07-24 12:06:08

标签: c# winforms visual-studio uninstall

我有一些条件,我必须在卸载时检查,如果条件匹配,那么我想停止安装过程并想要回滚卸载过程。

目前我正在使用自定义操作来使用安装程序类进行卸载。我检查条件是否匹配?如果匹配则我已完成回滚,否则卸载将继续。

我在卸载脚本操作中使用了以下代码。

public override void Uninstall(IDictionary savedState)
        {
            if (Condition)
            {
                Rollback(savedState);
            }
            else
            {
                base.Uninstall(savedState);
            }

        }

但是这段代码无法回滚卸载过程。让我知道这段代码有什么问题。如果有任何新想法,请告诉我。

1 个答案:

答案 0 :(得分:2)

抛出InstallException它会回滚。阅读this

public override void Uninstall(IDictionary savedState)
{
    if (Condition)
    {
        throw new InstallException("blah blah");
        // What ever you want to do after
    }
    else
    {
        base.Uninstall(savedState);
    }               
}

您的代码无效。为什么呢?

发生回滚时,将调用回滚自定义操作。

调用Rollback自定义操作会导致回滚。