2017-09-25 173 views
2

我有一个Visual Studio安装项目,在卸载步骤上有一个自定义操作。我可以绕过Visual Studio安装项目中的卸载吗?

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

我创建了一个定制安装程序类,如this文章。

适合我的需要的代码如下:

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

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

CredentialManager是我的形式,我用它来获取用户的凭据,并决定他们是否正确与否。

我期待卸载应用程序只有当条件被验证,但它仍然卸载应用程序!即使我将Uninstall方法留空,它仍会卸载应用程序。

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

谢谢你的尊敬。

+0

我甚至试过base.Uninstall(null);但它没有完成这项工作 –

回答

0

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

相关问题