Net Web项目安装包制作.docx

上传人:b****5 文档编号:4609483 上传时间:2022-12-07 格式:DOCX 页数:20 大小:1.69MB
下载 相关 举报
Net Web项目安装包制作.docx_第1页
第1页 / 共20页
Net Web项目安装包制作.docx_第2页
第2页 / 共20页
Net Web项目安装包制作.docx_第3页
第3页 / 共20页
Net Web项目安装包制作.docx_第4页
第4页 / 共20页
Net Web项目安装包制作.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

Net Web项目安装包制作.docx

《Net Web项目安装包制作.docx》由会员分享,可在线阅读,更多相关《Net Web项目安装包制作.docx(20页珍藏版)》请在冰豆网上搜索。

Net Web项目安装包制作.docx

NetWeb项目安装包制作

在测试Web项目中新建一个Web安装项目,如下图:

 

在新建的安装项目,右击项目如下图:

 

选择项目输出,选择要输出的项目,如下图:

我选一个Web网站,则只有内容输出选项,选中内容文件选择确定。

如果选Web项目,则如下图:

 

右击项目点击属性,则出现如下图:

再点击系统必备:

这些选择打包程序需要包含的组件,主要是我们需要.NetFramework组件,我们需要打包进来。

这里将.NetFramework2.0(X86)打钩,并且在下面指定系统必备组件的安装位置选择第二项,这样就打钩的组件就会跟进安装包了。

第一项则是组件从微软网站上下载,第三项则是指定自定义位置。

 

点击确定,接下来,我们右击项目,如下图:

点击启动条件,如下图:

我们可以看到启动条件,我们来看看IIS条件,右击IIS条件,查看属性窗口,如下图:

 

这里可以看到设置条件,IISVERSION>="#5"表示IIS版本需要5.0以上,如果需要6.0以上则是IISVERSION>="#6"。

 

下面我们来设置安装界面。

右击项目如下图:

选择点击用户界面,如下图:

这里我已经添加了三个步骤,分别是许可协议、客户信息、文本框(A)这三个。

通过右击启动,点击添加对话框,如下图:

来选择我们需要的步骤。

 

右击许可协议步骤,查看属性如下图:

我们知道在安装很多软件的时候都会有一步是许可协议,然后让我们点击同意,然后再下一步,就是这里啦。

我们这里添加了一个license.rtf文件到安装项目,这里就可以选择这个文件了。

 

由于在安装过程也需要设置数据库,所以我们还需要让安装用户在安装过程中输入数据库服务器信息,这里就是文本框(A)这个步骤啦。

右击步骤查看属性窗口如下图:

这里有四个文本框可以使用,我们只需要三个数据库服务器、帐号、密码,所以第四个Visible设置为false。

 

由于需要配置数据库,则我们需要再建一个项目,新建一个类库项目,然后添加一个安装类,如下图:

生成一个安装类如下图,是一个继承Installer类的类。

 

然后我们需要在安装类中编写代码啦。

我们重写Install方法:

publicoverridevoidInstall(IDictionarystateSaver)

这里就是我们需要写配置数据库信息。

 

然后我们在安装项目中添加这个项目,如下图:

然后右击安装项目,如下图:

选择自定义操作,则出现自定义操作界面如下图:

然后我们在安装的操作中添加刚才的新建的项目,右击安装,添加自定义操作,如下图:

选中并点击确定。

接下来我们需要在安装过程传递输入的数据传递这个项目中,右击安装下面的刚添加的主输出,如下图:

属性框中的CustomActionData就是指定要传递到安装程序的自定义数据。

 

然后我们再回到新建的那个安装类,在Install方法就可以接收安装过程中输出的数据库信息,如下:

publicoverridevoidInstall(IDictionarystateSaver)

{

base.Install(stateSaver);

stringdatabaseServer=Context.Parameters["server"].ToString();

stringuserName=Context.Parameters["user"].ToString();

stringuserPass=Context.Parameters["pwd"].ToString();

stringtargetdir=Context.Parameters["targetdir"].ToString();

//这里操作添加数据库,只要执行创建数据库的脚本就可以了。

 

//这个是测试在安装目录下添加接收到的用户填写的数据库信息

File.WriteAllText(Path.Combine(targetdir,"log.txt"),databaseServer+"/n/r"+userName+"/n/r"+userPass);

}

这里Context.Parameters["server"]的Server和上面设置CustomActionData是对应的。

 

这样就完成了安装包的制作了,编译生成一下,我们测试一下安装包是否真的有效。

下面接一下制作完安装过程:

安装过程就这么多了。

下面我们来看看是否已经安装成功,如下图:

说明Web网站已经成功被安装到虚拟目录下了。

 

上一节是讲述如何制作Web安装包的过程,只要按照步骤做就可以了。

这一节将讲述安装过程中如何部署数据库,以及执行其他组件的安装。

在这里使用直接执行sql脚本来创建数据库。

(也可以使用附件数据库文件的形式)

只要在Install方法中添加执行sql脚本的方法,就是使用SqlConnection连接数据库操作。

using(SqlConnectionconnection= newSqlConnection(connectionString)) 

   connection.Open(); 

   ExecuteSQL(connection,GetResource("createdatabase.sql")); 

}

///

///执行sql语句

///

///

///

voidExecuteSQL(SqlConnectionconnection,stringsql)

{

SqlCommandcmd=newSqlCommand(sql,connection);

cmd.ExecuteNonQuery();

}

///

///获取数据库登录连接字符串

///

///数据库名称

///

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方法。

///

///获取资源文件中的脚本

///

///

///

stringGetResource(stringresourceName)

{

Assemblyass=Assembly.GetExecutingAssembly();

using(Streamstream=ass.GetManifestResourceStream(ass.GetName().Name+"."+resourceName))

{

using(StreamReaderreader=newStreamReader(stream,System.Text.Encoding.Default))

{

returnreader.ReadToEnd();

}

}

}

这样再来看install方法的全部代码,如下:

///

///安装

///

///

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中的脚本。

///

///卸载

///

///

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中配置

就是替换#constring#为安装过程中生成的新的链接字符串。

 

还有在我们的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包了。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1