Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义卸载操作c#_C#_Winforms_Visual Studio_Uninstallation - Fatal编程技术网

自定义卸载操作c#

自定义卸载操作c#,c#,winforms,visual-studio,uninstallation,C#,Winforms,Visual Studio,Uninstallation,我有一些条件,我必须在卸载时检查,如果条件匹配,那么我想停止安装过程并回滚卸载过程 目前,我正在使用自定义操作来卸载using installer类。在哪种情况下我检查条件是否匹配?如果匹配,则我已执行回滚且没有,则卸载将继续 我在卸载脚本操作中使用了以下代码 public override void Uninstall(IDictionary savedState) { if (Condition) {

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

目前,我正在使用自定义操作来卸载using installer类。在哪种情况下我检查条件是否匹配?如果匹配,则我已执行回滚且没有,则卸载将继续

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

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

        }

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

抛出一个
InstallException
,它将回滚。阅读

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

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


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

thx for replay。我曾尝试抛出异常,但现在的问题是,它显示了一个异常错误窗口。是否有任何方法可以隐藏该窗口。不幸的是,没有。该窗口告诉用户调用回滚的原因。在我的代码中,它将显示“诸如此类”,另外还显示“错误1001……”。在Wix/Installshield中似乎有出路,但在Visual studio部署项目中没有。@NikhilAgrawal,但在我的项目中,我需要在Visual studio部署项目中这样做。所以我在进一步探索,,
public override void Uninstall(IDictionary savedState)
{
    if (Condition)
    {
        throw new InstallException("blah blah");
        // What ever you want to do after
    }
    else
    {
        base.Uninstall(savedState);
    }               
}