Net Web项目安装包制作.docx
- 文档编号:4609483
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:20
- 大小:1.69MB
Net Web项目安装包制作.docx
《Net Web项目安装包制作.docx》由会员分享,可在线阅读,更多相关《Net Web项目安装包制作.docx(20页珍藏版)》请在冰豆网上搜索。
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包了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Net Web项目安装包制作 Web 项目 安装 制作