VS.NET安装部署深入研究

2016-01-29 13:05 75 1 收藏

VS.NET安装部署深入研究,VS.NET安装部署深入研究

【 tulaoshi.com - ASP.NET 】

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

来源:http://www.tulaoshi.com/n/20160129/1488817.html

延伸阅读
    现在使用FoxMail的用户越来越多了,但是FoxMail却不像OutLook一样给编程人员提供开发接口。我认为这对一个好的软件的推广来说是很不利的。前几个月小弟由于开发需要对FoxMail进行了以下研究,这几天闲下来将材料整理了一下,供大家参考。我使用FoxMail4.2进行研究,但是在FoxMail5.0推出后,我也进行了测试,仍然使用。 ...
标签: ASP
  用ASP编写虚拟社区、网上购物等程序时,Application和Session对象具有举足轻重的作用,能够灵活合理地运用这两个对象是提高程序质量的关键。下面让笔者根据自己在这方面的经验,向大家深入介绍一下ASP的这两个内建对象。 一、Application对象的成员概述 Application对象成员包括Application对象的集合、方法和事件。 ⒈A...
标签: ASP
  二、Session对象的成员概述 Session对象的成员比Application对象多一项属性,即:集合、属性、方法、事件 ⒈Session对象的集合 Contents :没有使用<OBJECT元素定义的存储于特定Session对象的所有变量的集合。 StaticObject:使用<OBJECT元素定义的、存储于Session对象中的所有变量的集合。 例:在defau...
标签: PHP
大家知道目前表单提交的方式有GET和POST。我在这里不多说什么,给大家看一个以GET方式提交的表单的请求:  GET /cgi-bin/tech/method.cgi?GET=GET HTTP/1.1  Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd...
标签: vb
前言: 还记得在asp3.0里,我们为了上载文件可真是煞费苦心,写了一大堆的代码,可执行起来还是那么慢。但在asp.net里这个问题可以轻松搞定,这篇文章我们就探讨如何建立一个用户自定义的文件上载控件,并在我们的.ASPX程序中使用它。 正文 第一步:开发自定义文件上载控件 打开VS.NET,建立一个工程:WebApp,我们使用WebApp项目来做我们的...

经验教程

562

收藏

59
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部