当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > VS.NET安装部署深入研究

ASP.NET
FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用方法
.NET 常用功能和代码小结
在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
asp.net IList查询数据后格式化数据再绑定控件
asp.net sql存储过程
asp.net 简单实现禁用或启用页面中的某一类型的控件
asp.net(c#)获取内容第一张图片地址的函数
The remote procedure call failed and did not execute的解决办法
ASP.NET 在线文件管理
asp.net 读取并修改config文件实现代码
ASP.NET Cookie 操作实现
asp.net Silverlight中的模式窗体
Silverlight中动态获取Web Service地址
asp.net Silverlight应用程序中获取载体aspx页面参数
asp.net 水晶报表隔行换色实现方法
asp.net 获取Gridview隐藏列的值
手动把asp.net的类生成dll文件的方法
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
动态指定任意类型的ObjectDataSource对象的查询参数
asp.net Md5的用法小结

ASP.NET 中的 VS.NET安装部署深入研究


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 56 ::
收藏到网摘: n/a

Minbear (dev-club) 相信很多人都做过安装程序,目前最大功能最全的当属InstallShield,但是InstallShield的语法学习起来实在费劲,相对而言vs.net自带的安装部署短小精悍,且使用C#语法,对于一般C#开发者来说使用起来就极为简便,在对其作了一些研究之后,发现vs.net的安装部署项目的功能也已经非常好用,一般的程序安装都可以轻松实现,当然,在研究的过程中也发现了一些缺陷,这个后面再提。下面就向大家介绍一下ASP.NET安装部署项目的一些复杂应用实现: 首先我们假设存在一个已经完工的web项目eHRM,其文件列表如图其中web.config中存在我们的数据库连接及系统的一些其他配置,如数据库类型等,这些配置需要在安装时进行修改。OK,知道了我们的安装对象,现在开始做安装部署程序,首先,在解决方案中添加一个新项目,如图,项目类型为Web安装项目,项目名称eHRMSetUp。项目添加完毕,选中eHRMSetUp,会发现工具栏发生了一些变化,如图所示, 主要有6个工具按钮,分别代码安装部署的6大编辑器:1、 表示文件系统编辑器,主要用于目标机器的文件安装操作。2、 表示注册表编辑器,用于目标机器的注册表操作。3、 表示文件类型编辑器,用于向目标机器安装新的文件类型。4、 用户界面编辑器,用于确定安装过程中所用到的一些界面。5、 自定义操作编辑器,调用用户自定义的操作代码。6、 启动条件编辑器,用于设置安装程序的启动条件。 这6个编辑器不一定全部会用到,我们的demo安装就只需要用到1/4/5大部分的安装包属性均存在于eHRMSetUp项目的属性中,属性界面如图:在这里可以设置产品名称(eHRMSetUp),产品编号(ProductCode)以及安装包全球化类型(Localization)等相关的安装程序属性。除了eHRMSetUp安装部署项目,我们还需要添加一个eHRMSetUpCompenent项目,用来自定义安装操作,在eHRMSetUpCompenent项目中添加一个新的安装程序类,如图名称为eHRMInstaller.cs,在其中添加如下代码:protected override void OnAfterInstall(IDictionary savedState) { base.OnAfterInstall (savedState); } public override void Install(IDictionary stateSaver) { base.Install (stateSaver); } protected override void OnBeforeInstall(IDictionary savedState) { base.OnBeforeInstall (savedState); } public override void Uninstall(IDictionary savedState) { base.Uninstall (savedState); } public override void Rollback(IDictionary savedState) { base.Rollback (savedState); }这些代码将主要负责对于安装中的操作进行自定义处理,包括建数据库,配置web.config等。为了在安装部署中调用项目eHRMSetUpCompenent定义的操作,需要在项目eHRMSetUp中添加eHRMSetUpCompenent的主输出和项目eHRM的内容输出,具体操作是选择eHRMSetUp项目后右键 —— 添加 —— 项目输出 ——选择项目eHRMSetUpCompenent的主输出,添加完毕后如图:现在回到项目eHRMSetUp,打开文件系统编辑器,点击Web应用程序文件夹,编辑其属性,属性界面如下:其中比较重要的就是VirtualDirectory属性,表示安装后建立的虚拟目录名称,其他属性视具体情况而定。下面通过用户界面编辑器来配置用户的安装界面,vs.net2003目前所提供的窗口比较少,如图:基本是几个比较简单的配置窗口,所以如果需要用到一些复杂的配置,那么这些窗口就远远不够用了,不过我们可以进行部分的扩展来实现这些复杂的配置,具体方法如下:1、 在项目eHRMSetUpCompenent中添加一个windows窗口FrmConfig.cs,设计我们需要用的界面。2、 修改eHRMInstaller.cs中的代码如下: protected override void OnAfterInstall(IDictionary savedState) { FrmConfig _FC = new FrmConfig(); _FC.ShowDialog(); base.OnAfterInstall (savedState); }3、 这样,在安装的过程中会中断并弹出FrmConfig让用户进行配置。最后就是通过自定义操作编辑器来设置安装过程中的自定义操作,从web应用程序文件夹选择主输出来自eHRMSetUpCompenent(活动),添加完毕如图所示:分别设置4个主输出的CustomActionData属性为:/LogicDir=[TARGETDIR] /VitualDir=[TARGETVDIR][TARGETDIR]和[TARGETVDIR]是系统部署自带属性,分别表示安装物理目录地址和虚拟目录地址。设置完这些自定义操作的传入参数后就可以直接在eHRMSetUpCompenent项目的代码中进行调用,调用代码如下:public override void Install(IDictionary stateSaver) { //安装物理目录 string LogicDir = Context.Parameters["LogicDir"]; //安装虚拟目录 string VitualDir = Context.Parameters["VitualDir"]; //TODO 根据配置安装操作 base.Install (stateSaver); }最后需要做的就是卸载时的一些文件处理:public override void Uninstall(IDictionary savedState) { //安装物理目录 string LogicDir = Context.Parameters["LogicDir"]; //安装虚拟目录 string VitualDir = Context.Parameters["VitualD