0

私は MSI インストーラー、wix および wixsharp の初心者です。インストール プロセス中にいくつかのアクションを含むインストーラーを実装する必要があります (*.exe の呼び出しやタスク スケジューラのセットアップなど)。問題や例外が発生した場合は、インストールされているすべてのアイテムをロールバックする必要があります。

  1. Wixsharp を使用してロールバックを実装する方法 (Wix#) ? このプロジェクトのページに情報が見つかりませんでした。

  2. カスタム アクションと before\after インストール イベント ハンドラーの実質的な違いがわかりません。wix# で AfterInstall イベント ハンドラーを発行する代わりに、正確にカスタム アクションを使用する必要があるのは何ですか?

4

1 に答える 1

1

wix# の作成者は、アクセス許可の昇格とアセンブリへのサード パーティの参照を使用してロールバックするのを手伝ってくれました (最も困難なケース)。

完全な回答はこちら: https://wixsharp.codeplex.com/discussions/646337

一般的な方法で、ロールバックは次のように実行できます。

project.AfterInstall += project_AfterInstall;
...
static void project_AfterInstall(SetupEventArgs e)
{
    try
    {
        //do your stuff
    }
    catch (Exception ex)
    {
        e.Session.Log(ex.Message);
        e.Result = ActionResult.Failure;
    }
}
于 2015-10-28T20:53:42.557 に答える