2017-07-06 60 views
0

我試着在OnBeforeInstall方法&裏面做一些驗證,如果驗證通過將繼續通過安裝過程,如果驗證失敗,我想回滾並卸載安裝程序。Visual Studio 2015安裝程序項目

我試過這樣的事情,即使這是成功的,這在回滾時給了我一些例外。

if(validation){ 
} 
else{ 
    base.RollBack(savedState); 
} 

異常 - savedState不包含所需值或損壞。

請幫助我做到這一點,沒有任何例外。

回答

0

這不是真的如何導致Visual Studio生成的MSI回滾。您拋出一個InstallException,並導致回滾。

OnBeforeInstall實際上並非「安裝之前」。所有Visual Studio安裝自定義操作都在所有文件已經安裝(儘管名稱)後被調用,所以回滾實際上會卸載所有內容。如果您正在驗證輸入(或某些預安裝條件),則它非常不友好。

相關問題