需求是在某个条件为真的时候,出提示,禁止卸载。但是现在是无法让windwos的控制面板中的添加卸载程序,停止卸载。现在用的重载Uninstall() 但是依然没有办法去停止卸载这个动作。请问有什么方法可以做到?

解决方案 »

  1.   

    beforeUninstall这个事件里抛出错误就可以了。
      

  2.   

    新建一个类,继承Installer,里面就可以重写这些方法了,但是这样还不能生效,你要在安装项目中,先添加这个类的项目引用“主输出来自。(活动)”,然后在自定义操作视图中,有安装、提交、回滚、卸载,然后你添加自定义操作指定主输出,然后他安装的时候,就会自动寻找相应的方法并执行了。里面有        protected override void OnBeforeUninstall(System.Collections.IDictionary savedState)
            {
                base.OnBeforeUninstall(savedState);
            }        protected override void Uninstall(System.Collections.IDictionary savedState)
            {
                base.Uninstall(savedState);
            }这里面都行
      

  3.   

    Installer上做可能很难,用installshield?
      

  4.   

    为自定义安装添加自定义安装操作,指定来自定义安装的工程,如InstallAction
    覆盖Installer的函数实现自定义安装及卸载:
    public override void Install(System.Collections.IDictionary stateSaver) 
    {  
     base.Install(stateSaver);  
     SaveConfig();  //保存配置文件到文件,并保存到数据库中 
     SetupDB();   //安装Sql脚本
    }protected override void OnBeforeUninstall(System.Collections.IDictionary savedState)
    {
     base.OnBeforeUninstall (savedState);
    }