我有一些条件,我必须在卸载时检查,如果条件匹配,那么我想停止安装过程并想要回滚卸载过程。
目前我正在使用自定义操作来使用安装程序类进行卸载。我检查条件是否匹配?如果匹配则我已完成回滚,否则卸载将继续。
我在卸载脚本操作中使用了以下代码。
public override void Uninstall(IDictionary savedState)
{
if (Condition)
{
Rollback(savedState);
}
else
{
base.Uninstall(savedState);
}
}
但是这段代码无法回滚卸载过程。让我知道这段代码有什么问题。如果有任何新想法,请告诉我。
答案 0 :(得分:2)
抛出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);
}
}
您的代码无效。为什么呢?
发生回滚时,将调用回滚自定义操作。
调用Rollback自定义操作会导致回滚。