2017-07-06 171 views
0

我试着在OnBeforeInstall方法&里面做一些验证,如果验证通过将继续通过安装过程,如果验证失败,我想回滚并卸载安装程序。Visual Studio 2015安装程序项目

我试过这样的事情,即使这是成功的,这在回滚时给了我一些例外。

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

异常 - savedState不包含所需值或损坏。

请帮助我做到这一点,没有任何例外。

回答

0

这不是真的如何导致Visual Studio生成的MSI回滚。您抛出一个InstallException,并导致回滚。

OnBeforeInstall实际上并非“安装之前”。所有Visual Studio安装自定义操作都在所有文件已经安装(尽管名称)后被调用,所以回滚实际上会卸载所有内容。如果您正在验证输入(或某些预安装条件),则它非常不友好。

相关问题