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

Posted

技术标签:

【中文标题】我可以绕过 Visual Studio 安装项目中的卸载吗?【英文标题】:Can I bypass uninstall in a Visual Studio Setup Project? 【发布时间】:2018-03-06 18:52:54 【问题描述】:

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

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

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

适合我需要的代码如下:

public override void Uninstall(IDictionary savedState)

      var window = new CredentialManager();

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

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

我希望仅当条件得到验证时才卸载该应用程序,但无论如何它都会卸载该应用程序!即使我将卸载方法留空,它仍然会卸载应用程序。

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

非常感谢。

【问题讨论】:

我什至尝试过 base.Uninstall(null);但它不起作用 【参考方案1】:

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

【讨论】:

以上是关于我可以绕过 Visual Studio 安装项目中的卸载吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以将Visual Studio CodeMap(.DGML文件)导出到Visio吗?

Visual Studio安装程序项目扩展 - 安装服务

Visual Studio 2019 - SSDT

在 Visual Studio 2022 上设置项目

Visual Studio 2017 安装中断 Visual Studio 2015 ASP.NET Core 项目

Visual Studio安装程序项目中的其他安装程序