我可以在Visual Studio安装项目中绕过卸载吗?

时间:2017-09-25 17:57:06

标签: c# visual-studio uninstall setup-project

我有一个Visual Studio安装项目,在卸载步骤中有自定义操作。

该自定义操作将只显示一个窗口,用户可以在其中输入一些凭据。如果凭据正确,我想卸载该应用程序。否则,我想保持安装应用程序(绕过卸载程序)。

我在this文章中创建了一个自定义安装程序类。

符合我需求的代码如下:

public override void Uninstall(IDictionary savedState)
{
      var window = new CredentialManager();

      if(window.ShowDialog() == DialogResult.OK)
      {
          base.Uninstall(savedState);
      }
}

CredentialManager是我用来获取用户凭据并确定它们是否正确的表单。

我希望只有在条件得到验证后卸载应用程序,但无论如何它都会卸载应用程序!即使我将Uninstall方法留空,它仍会卸载应用程序。

你知道实现我想要的方法吗?

谢天谢地。

1 个答案:

答案 0 :(得分:0)

当我想取消卸载步骤时,我终于通过抛出异常来完成它。它是一个可行的解决方案,因为它允许我向用户提供错误消息并回滚卸载过程。