自定义卸载动作 c#
Posted
技术标签:
【中文标题】自定义卸载动作 c#【英文标题】:Custom uninstall Action c# 【发布时间】:2012-07-22 18:00:14 【问题描述】:我有一些条件,我必须在卸载时检查,如果条件匹配,那么我想停止安装过程并想回滚卸载过程。
目前我正在使用安装程序类进行卸载的自定义操作。我在其中检查条件是否匹配?如果匹配,则我已完成回滚,否则将继续卸载。
我在卸载脚本操作中使用了以下代码。
public override void Uninstall(IDictionary savedState)
if (Condition)
Rollback(savedState);
else
base.Uninstall(savedState);
但此代码无法回滚卸载过程。让我知道这段代码有什么问题。如果有任何新想法,请告诉我。
【问题讨论】:
【参考方案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 部署项目中进行。所以我正在进一步探索1,2以上是关于自定义卸载动作 c#的主要内容,如果未能解决你的问题,请参考以下文章