110,536
社区成员
发帖
与我相关
我的任务
分享
namespace DBInstaller
{
[RunInstaller(true)]
public class DBInstaller : Installer
{
#region "const variable"
//webservice虚拟目录
private const string WEBSERVICE_VIRTUALPATH = "QASWebService";
#endregion
#region private variable
//数据库名
private string m_dbName;
//数据库服务器地址
private string m_server;
//用户名
private string m_user;
//密码
private string m_pwd;
//连接字符串
private string m_connString;
#endregion
#region Base Class's Function
/// <summary>
/// 重写OnBeforeInstall方法
/// </summary>
/// <param name="savedState"></param>
protected override void OnBeforeInstall(System.Collections.IDictionary savedState)
{
System.Diagnostics.Debugger.Break();//这这断点安装时可以进来
//取得DB链接信息
m_dbName = this.Context.Parameters["dbname"];
m_server = this.Context.Parameters["server"];
m_user = this.Context.Parameters["user"];
m_pwd = this.Context.Parameters["pwd"];
base.OnBeforeInstall(savedState);
}
/// <summary>
/// 重写Install方法
/// </summary>
/// <param name="stateSaver"></param>
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
//创建数据库
CreatDataBase(m_dbName);
//写Web.config
WriteWebConfig();
}
/// <summary>
/// 重写Commit方法
/// </summary>
/// <param name="savedState"></param>
public override void Commit(System.Collections.IDictionary savedState)
{
base.Commit(savedState);
}
/// <summary>
/// 重写Rollback方法
/// </summary>
/// <param name="savedState"></param>
public override void Rollback(System.Collections.IDictionary savedState)
{
System.Diagnostics.Debugger.Break();//这里有断点
//删除数据库
ExcuteSql(true, " IF EXISTS (SELECT NAME FROM SYSDATABASES WHERE NAME='" + m_dbName + "') " +
" DROP DATABASE " + m_dbName);
base.Rollback(savedState);
}
/// <summary>
/// 重写OnBeforeUninstall方法
/// </summary>
/// <param name="savedState"></param>
protected override void OnBeforeUninstall(System.Collections.IDictionary savedState)
{
System.Diagnostics.Debugger.Break();//这里有断点
//删除数据库
ExcuteSql(true, " IF EXISTS (SELECT NAME FROM SYSDATABASES WHERE NAME='" + m_dbName + "') " +
" DROP DATABASE " + m_dbName);
//卸载服务
InstallWindowsService(false);
base.OnBeforeUninstall(savedState);
}
/// <summary>
/// 重写Uninstall方法
/// </summary>
/// <param name="savedState"></param>
public override void Uninstall(System.Collections.IDictionary savedState)
{
base.Uninstall(savedState);
}
}
}