public override void Install(System.Collections.IDictionary stateSaver) { base.Install(stateSaver); string strParameter = this.Context.Parameters["rootdir"]; if (string.IsNullOrEmpty(strParameter) == true) { return; } #if NO string strRootDir = UnQuote(this.Context.Parameters["rootdir"]); InstanceDialog dlg = new InstanceDialog(); GuiUtil.AutoSetDefaultFont(dlg); dlg.SourceDir = strRootDir; dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(ForegroundWindow.Instance); if (dlg.DialogResult == DialogResult.Cancel) { throw new InstallException("用户取消安装。"); } if (dlg.Changed == true) { // 兑现修改 } #endif }
public override void Uninstall(System.Collections.IDictionary savedState) { // Debug.Assert(false, ""); base.Uninstall(savedState); string strParameter = this.Context.Parameters["rootdir"]; if (string.IsNullOrEmpty(strParameter) == true) { return; } #if NO String strRootDir = UnQuote(strParameter); DialogResult result; string strText = "是否完全卸载?\r\n\r\n" + "单击'是',则把全部实例的数据目录删除,所有的库配置信息丢失,所有的实例信息丢失。以后安装时需要重新安装数据目录和数据库。\r\n\r\n" + "单击'否',不删除数据目录,仅卸载执行程序,下次安装时可以继续使用已存在的库配置信息。升级安装前的卸载应选此项。"; result = MessageBox.Show(ForegroundWindow.Instance, strText, "卸载 dp2Library", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); if (result == DialogResult.Yes) { InstanceDialog dlg = new InstanceDialog(); GuiUtil.AutoSetDefaultFont(dlg); dlg.Text = "彻底卸载所有实例和数据目录"; dlg.Comment = "下列实例将被全部卸载。请仔细确认。一旦卸载,全部数据目录和实例信息将被删除,并且无法恢复。"; dlg.UninstallMode = true; dlg.SourceDir = strRootDir; dlg.StartPosition = FormStartPosition.CenterScreen; dlg.ShowDialog(ForegroundWindow.Instance); if (dlg.DialogResult == DialogResult.Cancel) { MessageBox.Show(ForegroundWindow.Instance, "已放弃卸载全部实例和数据目录。仅仅卸载了可执行程序。"); } } #endif }