【问题标题】:Custom uninstall Action c#自定义卸载动作 c#
【发布时间】:2012-07-22 18:00:14
【问题描述】:

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

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

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

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

        }

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

【问题讨论】:

    标签: c# winforms visual-studio uninstallation


    【解决方案1】:

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

    您的代码不起作用。为什么?

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

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

    【讨论】:

    • 感谢重播。我尝试抛出异常,但现在问题是,它显示异常错误窗口。有什么办法可以隐藏那个窗口。
    • 不幸的是,没有。该窗口告诉用户为什么调用回滚。在我的代码中,它将显示“blah blah”
    • 另外它显示“错误 1001 ........”。在 Wix/Installshield 中似乎有出路,但在 Visual Studio 部署项目中没有。
    • @NikhilAgrawal,但在我的项目中,我需要在 Visual Studio 部署项目中进行。所以我正在进一步探索12
    猜你喜欢
    • 2011-03-02
    • 2012-05-10
    • 2011-08-10
    • 2010-10-21
    • 1970-01-01
    • 2012-01-27
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多