2

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

目前我正在使用安装程序类进行卸载的自定义操作。我在其中检查条件是否匹配?如果匹配,那么我已经完成回滚并且没有,那么卸载将继续。

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

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

        }

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

4

1 回答 1

2

抛出一个InstallException,它会回滚。读这个

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

您的代码将无法正常工作。为什么?

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

调用回滚自定义操作将导致回滚不是其他方式。

于 2012-07-24T12:08:36.330 回答