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);
    }               
}

あなたのコードは機能しません。なんで?

ロールバックが発生すると、ロールバック カスタム アクションが呼び出されます。

Rollback カスタム アクションを呼び出すと Rollback が発生するという別の方法はありません。

于 2012-07-24T12:08:36.330 に答える