6)卸载 [C#] 纯文本查看 复制代码 /// <summary
/// 卸载
/// </summary>
/// <param name="savedState"></param>
public override void Uninstall(IDictionary savedState)
{
DeleteWebSite(); //删除安装文件前先删除站点,因删除站点时需读取安装文件的配置信息 dbpath = Path.Combine(this.Context.Parameters["installdir"].ToString(), "dbconfig.xml"); string connectionString = OperateXML.GetXmlNodeValue(dbpath, "ConnString"); string dbName = OperateXML.GetXmlNodeValue(dbpath, "DbName"); base.Uninstall(savedState); try
{ using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open(); string sql = "if exists(select 1 from master..sysdatabases where name= '" + dbName + "') drop database " + dbName;
ExecuteSQL(connection, sql);
connection.Close();
} if (Directory.Exists(Context.Parameters["installdir"].ToString() + "Message"))
{
Directory.Delete(Context.Parameters["installdir"].ToString() + "Message", true);//删除解压产生的文件
} if (Directory.Exists(Context.Parameters["installdir"].ToString() + "MoreUpload"))
{
Directory.Delete(Context.Parameters["installdir"].ToString() + "MoreUpload", true);
}
} catch (Exception ex)
{
MessageBox.Show("卸载失败!\n" + ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.Rollback(savedState); return;
}
} 因为解压产生的文件卸载时不会自动删除,需要单独编写代码删除,这些文件是安装过程中产生的次生文件,它只会自动删除原本WEB项目打包进去的原来文件,至于另外产生的文件
是不会自动删除的。对于解压后的文件进行操作,这里也有个一个必须要注意的地方,就是路径问题,解压产生的次生文件,安装时会读取不到解压后的文件夹路径,事实上文件已经复制解压也完成了,但就是读取不到,对应这种情况办法是建立一个和压缩包一样的空文件夹放到WEB项目里,如果解压后的文件里需要替换webconfig连接串,可以在文件夹里放入Web.xml文件,并设置好要替换的地方,前面说了多个webconfig生成会不成功,这里可以先取名xml,解压后替换连接串再修改文件名OK了。
红色这句话是什么意思呢!!!一直搞不懂 我是按照http://blog.sina.com.cn/s/blog_4c6e822d0102dtk6.html方法来打包的 然后安装过程中出现
这要怎么搞
|