RollBack期间自定义操作中的异常

时间:2010-02-03 09:33:57

标签: c# .net winforms windows-installer custom-action

在自定义操作中,我覆盖以下函数并在回滚中获得异常 案例......

  

“savedState字典没有   包含期望值和可能   已经腐败了。 “

还有其他方法可以回滚吗?

   protected override void OnBeforeInstall(System.Collections.IDictionary savedState)
    {            
        try
        {                

            bool report = false; //Some validation
            if (!report)                
                throw new InstallException("License is not valid.");
            base.OnBeforeInstall(savedState);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            base.Rollback(savedState);
        }

    }

2 个答案:

答案 0 :(得分:1)

将异常处理程序中的“base.Rollback()”更改为“throw;”。您的呼叫者将在正确的时间呼叫回滚。

答案 1 :(得分:1)

您可以使用pinvoke调用基本安装程序上的取消按钮。这将在没有任何installexception错误消息对话框的情况下回滚。