关于安装部署,利用.net提供的安装部署项目我制作了自己的msi文件。
但目前有这么一个需求,即在自定义安装操作中,如果在install()某一个没有执行成功,我想实现回滚(删除以前所有安装),可是怎么也不能成功!郁闷,烦劳高手指教,谢谢!
部分代码如下:public override void Install(IDictionary savedState)
{ try
{
base.Install(savedState);
if(this.InstallServiceAndStartIt()==0)    //调用下面的方法
{

base.Rollback(savedState);
}

}
catch
{
throw;
}
}

解决方案 »

  1.   

    要重写Rollback事件啊
    public override void Rollback(IDictionary savedState)
    {
    base.Rollback (savedState); }
      

  2.   

    public override void Install(IDictionary savedState)
    {try
    {
    base.Install(savedState);
    if(this.InstallServiceAndStartIt()==0)    //调用下面的方法
    {
        throw new InstallException("出错了");
    }}
    catch
    {
    throw;
    }
      

  3.   

    高手,我已经重写了rollback(),并如下调用,还是没有起到作用,怎么回事?谢谢告知!
    public override void Install(IDictionary savedState)
    {try
    {
    base.Install(savedState);
    if(this.InstallServiceAndStartIt()==0)    //调用下面的方法
    {
    this.Rollback(savedState);           //更改后的,Rollback(savedState)是重写的.
    }}
    catch
    {
    throw;
    }
      

  4.   

    lzj3000(一笑):谢谢你,我试了您给的方法(抛出异常就可以了)
    分数送给您了,并在此表示谢意,以后多交流。