如何在自定义操作中回滚卸载?

时间:2013-01-23 11:50:12

标签: .net visual-studio-2010 windows-installer setup-deployment

我在自定义安装程序类中的MessageBox覆盖中显示OnBeforeUninstall

我已在Visual Studio安装项目的自定义操作编辑器中将安装程序类分配给Uninstall

现在基于对话框结果,我需要回滚卸载吗?

我已阅读this,但这些内容仅适用于Installshield。我需要在Visual Studio安装项目中执行此操作。

我尝试了Process.GetCurrentProcess().Kill(),但它将安装置于不稳定状态。

我也试过this.Rollback(),但它显示以下错误

  

错误1001.卸载时发生异常。此异常将被忽略,卸载将继续。但是,卸载完成后可能无法完全卸载应用程序。 - > savedState参数不能为空。“

1 个答案:

答案 0 :(得分:0)

如果安装程序项目中的消息框显示在 Install覆盖。然后,如果你

throw new InstallException();

Rollback覆盖将执行。

{MyInstallerProject}> RightClick>添加项目输出>从下拉菜单中选择项目>选择主要输出>好。查看| CustomActions>右键单击安装>添加自定义操作>双击应用程序文件夹>从{CustomActionprojectname}(活动)'

中选择“主要输出”

重复但在上面的说明中“回滚”而不是“安装”。