2017-09-25 172 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

我終於通過拋出異常,當我想取消卸載步驟。這是一個可行的解決方案,因爲它允許我向用戶提供錯誤消息並回滾卸載過程。

相關問題