Net Web项目安装包制作 (二)数据库安装、其他组件的安装
2010-09-13 18:09
501 查看
上一节是讲述如何制作Web安装包的过程,只要按照步骤做就可以了。
这一节将讲述安装过程中如何部署数据库,以及执行其他组件的安装。
在这里使用直接执行sql脚本来创建数据库。(也可以使用附件数据库文件的形式)
只要在Install方法中添加执行sql脚本的方法,就是使用SqlConnection连接数据库操作。
using(SqlConnectionconnection=newSqlConnection(connectionString))
{
connection.Open();
ExecuteSQL(connection,GetResource("createdatabase.sql"));
}
在这里使用嵌入式资源的形式打包sql脚本。
我们添加createdatabase.sql和dropdatabase.sql添加到项目中,如下图:
右击createdatabase.sql查看属性,如下图:
设置生成操作为嵌入的资源。dropdatabase.sql也是如此操作。
下面我们来使用代码如何读取资源的脚本,就是上面代码中的GetResource方法。
这样再来看install方法的全部代码,如下:
这样就完成了安装中数据库的创建。
在卸载中删除数据库则需要重写Uninstall方法,来执行dropdatabase.sql中的脚本。
就是替换#constring#为安装过程中生成的新的链接字符串。
还有在我们的OA项目中还是用微软的AJAX库,所以还要安装Ajax包。
我们将AJAX包打包进安装项目。
我们执行ajax2.0.msi的代码,如下:
这样在安装过称中就会安装这个ajax包了。
本节完。
下载示例
这一节将讲述安装过程中如何部署数据库,以及执行其他组件的安装。
在这里使用直接执行sql脚本来创建数据库。(也可以使用附件数据库文件的形式)
只要在Install方法中添加执行sql脚本的方法,就是使用SqlConnection连接数据库操作。
using(SqlConnectionconnection=newSqlConnection(connectionString))
{
connection.Open();
ExecuteSQL(connection,GetResource("createdatabase.sql"));
}
///<summary> ///执行sql语句 ///</summary> ///<paramname="connection"></param> ///<paramname="sql"></param> voidExecuteSQL(SqlConnectionconnection,stringsql) { SqlCommandcmd=newSqlCommand(sql,connection); cmd.ExecuteNonQuery(); }
///<summary> ///获取数据库登录连接字符串 ///</summary> ///<paramname="databasename">数据库名称</param> ///<returns></returns> privatestringGetConnectionString(stringdatabasename) { return"server="+Context.Parameters["server"].ToString()+";database="+(string.IsNullOrEmpty(databasename)?"master":databasename)+";UserID="+Context.Parameters["user"].ToString()+";Password="+Context.Parameters["pwd"].ToString(); }
在这里使用嵌入式资源的形式打包sql脚本。
我们添加createdatabase.sql和dropdatabase.sql添加到项目中,如下图:
右击createdatabase.sql查看属性,如下图:
设置生成操作为嵌入的资源。dropdatabase.sql也是如此操作。
下面我们来使用代码如何读取资源的脚本,就是上面代码中的GetResource方法。
///<summary> ///获取资源文件中的脚本 ///</summary> ///<paramname="resourceName"></param> ///<returns></returns> stringGetResource(stringresourceName) { Assemblyass=Assembly.GetExecutingAssembly(); using(Streamstream=ass.GetManifestResourceStream(ass.GetName().Name+"."+resourceName)) { using(StreamReaderreader=newStreamReader(stream,System.Text.Encoding.Default)) { returnreader.ReadToEnd(); } } }
///<summary> ///安装 ///</summary> ///<paramname="stateSaver"></param> publicoverridevoidInstall(IDictionarystateSaver) { base.Install(stateSaver); stringconnectionString=GetConnectionString(null); try { using(SqlConnectionconnection=newSqlConnection(connectionString)) { connection.Open(); ExecuteSQL(connection,GetResource("createdatabase.sql")); } } catch(Exceptionex) { MessageBox.Show("数据库安装失败!\n数据库配置有误,请正确配置信息!\n"+ex.Message,"出错啦!"); this.Rollback(stateSaver); } }
在卸载中删除数据库则需要重写Uninstall方法,来执行dropdatabase.sql中的脚本。
///<summary> ///卸载 ///</summary> ///<paramname="savedState"></param> publicoverridevoidUninstall(IDictionarysavedState) { base.Uninstall(savedState); /* //这里要获取保存的链接字符串 stringconnectionString= try { using(SqlConnectionconnection=newSqlConnection(connectionString)) { connection.Open(); ExecuteSQL(connection,GetResource("dropdatabase.sql")); } } catch(Exceptionex) { MessageBox.Show("数据库卸载失败!\n数据库配置有误,请正确配置信息!\n"+ex.Message,"出错啦!"); } */ }
创建表、创建示例数据的操作就是类似操作,就是打包新的资源。
Web项目的数据库连接都是在Web.config中的,所以安装过程还要修改Web.config的数据库连接,这里使用简单的替换。
如下:
/*
*设置webconfig连接字符串
*/
stringwebconfigpath=Path.Combine(this.Context.Parameters["targetdir"].ToString(),"web.config");
stringwebcofnigstring=File.ReadAllText(webconfigpath).Replace("#constring#",GetConnectionString("hxjdatabasename"));
File.WriteAllText(webconfigpath,webcofnigstring);
Web项目中WebConfig中配置
<addname="ConnectionString"connectionString="#constring#"providerName="System.Data.SqlClient"/>
还有在我们的OA项目中还是用微软的AJAX库,所以还要安装Ajax包。
我们将AJAX包打包进安装项目。
我们执行ajax2.0.msi的代码,如下:
/*
*安装ajax2.0框架
*/
System.Diagnostics.Processprocess=newSystem.Diagnostics.Process();
process.StartInfo.FileName=Path.Combine(this.Context.Parameters["targetdir"].ToString(),"Ajax2.0.msi");
process.StartInfo.WindowStyle=System.Diagnostics.ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
这样在安装过称中就会安装这个ajax包了。
本节完。
相关文章推荐
- .Net Web项目安装包制作 (二)数据库安装、其他组件的安装(转)
- .Net Web项目安装包制作 (二)数据库安装、其他组件的安装
- 一起谈.NET技术,ASP.NET 项目安装包制作(二)数据库安装、其他组件的安装
- ASP.NET 项目安装包制作(二)数据库安装、其他组件的安装
- .Net Web项目安装包制作 (二)数据库安装、其他组件的安装
- .Net Web 项目安装包制作(二)数据库及其他组件的安装
- .Net Web项目安装包制作 (二)数据库安装、其他组件的安装
- [转].Net Web项目安装包制作 (二)数据库安装、其他组件的安装
- .Net Web项目安装包制作 (二)数据库安装、其他组件的安装
- .Net Web项目安装包制作 (一)
- visual studio 2017 installer 安装包制作过程出现的问题---此安装程序需要.NET Framework 版本 3.5,请安装该版本,然后重新运行此安装程序,可以从Web获得.NET Framework 。要立即做此事吗?
- 打开项目时提示如下错误:Visual Studio .NET 无法创建应用程序 。问题很可能是因为本地 Web 服务器上没有安装所需的组件
- 。NET程序安装包制作(WEB安装项目)
- .Net Web项目安装包制作(三)补充说明
- 如果制作一个web项目安装部署包,并自动安装一些必备的组件?
- VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改)
- 【转】 VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改)
- .Net Web项目安装包制作 (一)
- 打开项目时提示如下错误:Visual Studio .NET 无法创建应用程序 。问题很可能是因为本地 Web 服务器上没有安装所需的组件
- .Net Web项目安装包制作一(转)