首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 软件教学-> 文件管理
VS.NET安装部署深入研究-.NET教程,.NET Framework
作者:网友供稿 点击:249
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
相信很多人都做过安装程序,目前最大功能最全的当属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"];
    //根据配置安装操作
    base.install (statesaver);
}
最后需要做的就是卸载时的一些文件处理:
public override void uninstall(idictionary savedstate) {
     //安装物理目录
     string logicdir = context.parameters["logicdir"];
     //安装虚拟目录
     string vitualdir = context.parameters["vitualdir"];
     //处理自定义部分的安装内容,如数据库等
     base.uninstall (savedstate);
}
完成了这一系列动作后,整个程序的安装雏形已经基本ok,只要在相应的地方加入实际安装中所需要进行的一系列action就可以制作一个完整的安装部署程序。
注意事项:
1、resource文件属于项目的源文件,而非内容文件,所以如果项目中有resource文件存在,则需要添加项目的源文件输出,同时利用排除筛选器设置好对*.cs文件和*.resx文件的过滤。
2、bin目录默认不在web项目中,所以打包还需要加入web项目的主输出或直接把bin目录下的文件加入到web项目中,这样生成的dll会包含在内容文件输出中。
3、安装制作过程中某些目录可能会无法创建(偶没能找到具体原因,估计是因为文件依赖性的缘故),则可以手工在web应用程序文件夹中直接创建。
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·C#:ListBox的2个常用方法Add,Clear与Items的2个属性-.NET教程,C#语言
·java连接sqlserver实例-JSP教程,Java技巧及代码
·Hibernate下数据批量处理解决方案-JSP教程,数据库相关
·一种基于pwm的电压输出dac电路设计
·delegate 与 多线程-.NET教程,算法/线程
·java Logging API 使用-JSP教程,Java技巧及代码
·ORACLE中LOB字段的使用和维护-ASP教程,数据库相关
·ups功率因数越大越好吗
·.NET三层经典架构PetShop3.0分析连载一-.NET教程,.NET Framework
·ASP后门之终极伪装-ASP教程,ASP基础
最新文章
·windows vista系统隐藏的12个网络工具_windows vista
·网站赚钱应如何选择网站联盟?_网赚技巧
·建站一级攻略 从看完之后就开始_站长心得
·论坛建设9大定律和经验分享_站长心得
·dreamweaver制作复杂交换图像_dreamweaver教程
·让你google广告90%不是公益广告的方法_google推广
·ppc 广告与转换率息息相关_google推广
·中国个人网站——新经济中的非主流1_站长心得
·blog设计的7个趋势_站长心得
·2005岁末blog程序大评点_站长心得
相关主题
  • vs.net c# 调用 active 组件_c#应用
  • VS.NET下web项目源代码管理-.NET教程,VB.Net语言
  • VS.NET: 通过Web服务瞄准电子商务-.NET教程,Asp.Net开发
  • VS.NET 学习方法论——tuenhai的 VS.NET 学习之旅-.NET教程,面向对象编程
  • VS.NET 2005 Beta 2初体验(3)—操作SQL Mobile数据库-.NET教程,评论及其它
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭