`

VS.NET2005安装部署之实战

 
阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>
相信很多人都做过安装程序,目前最大功能最全的当属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应用程序文件夹中直接创建。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1810782


分享到:
评论

相关推荐

    .NET Core 跨平台实战(含源码).pdf

    更棒的是.NET Core 在发布程序时不用事先安装Framework而是通过Nuget下载,这样在初次部署时就不用安装一个复杂而庞大Framework,而是按需下载。这种基于Nuget的按需加载铸就.NET Core 跨平台。

    Visual C#.NET项目实战开发从入门到精通 Part 2

     本书内容详实,案例鲜活,编排合理,讲解透彻,是一本不可多得的讲解Visual C#.NET软件开发的项目实战类书籍。本书适用于有C#语言入门基础,并想进一步精通Visual C#.NET开发工具开发各类软件项目的读者。

    ASP.NET.MVC.2开发实战

    开发实践篇通过一套完整的留言板系统案例详述ASP.NET MVC 2的开发技巧与流程,以及ASP.NET MVC的安装部署和单元测试方法。 《ASP.NET MVC 2开发实战》适合对MVC架构感兴趣的ASP.NET开发人员阅读。

    asp.net本地化实战解决方案及代码

    asp.net本地化实战解决方案。开发多语言的ASP.NET系统

    ASP.NET AJAX实战源码

    4.3.2 部署JavaScript文件 91 4.3.3 注册服务 92 4.3.4 本地化 92 4.3.5 使用ScriptManagerProxy 94 4.4 部分页面更新 95 4.4.1 引入UpdatePanel控件 95 4.4.2 更多UpdatePanel 98 4.4.3 在此插入反馈 99 ...

    ASP.NET.MVC.2开发实战.pdf

    开发实践篇通过一套完整的留言板系统案例详述ASP.NET MVC 2的开发技巧与流程,以及ASP.NET MVC的安装部署和单元测试方法。 《ASP.NET MVC 2开发实战》适合对MVC架构感兴趣的ASP.NET开发人员阅读。 作者简介 黄保翕...

    ASP.NET开发实战详解

    书名: ASP.NET开发实战详解 作者: 胡勇辉, 曹倬瑝, 兰湘涛等编著 出版社: 电子工业出版社 ASP.NET是Microsoft推出的新一代动态Web编程技术,该技术是Web应 用开发领域的一个革命性突破。本书将围绕目前最新推出...

    Visual C#.NET项目实战开发从入门到精通 Part 3

     本书内容详实,案例鲜活,编排合理,讲解透彻,是一本不可多得的讲解Visual C#.NET软件开发的项目实战类书籍。本书适用于有C#语言入门基础,并想进一步精通Visual C#.NET开发工具开发各类软件项目的读者。

    亮剑.NET SharePoint Server 2007 开发实战

     本书第1章为基础知识,讲述sharepoint的基本概念,基本的对象模型,代码编写注意事项,并讲解了一个集开发和部署打包为一体的项目结构的创建;第2章为web部件开发,介绍了web部件的开发部署及其皮肤机制的实现;第...

    ASP.NET.MVC.2开发实战_黄保翕

    开发实践篇通过一套完整的留言板系统案例详述ASP.NET MVC 2的开发技巧与流程,以及ASP.NET MVC的安装部署和单元测试方法。  《ASP.NET MVC2开发实战》适合对MVC架构感兴趣的ASP.NET开发人员阅读。 作者简介  ...

    编程课程+C#编程课程+.NET技术系列+编程实战

    成为C#技术专家,掌握.NET Core跨平台开发的秘密,本课程结合最新技术趋势,通过实战案例教学,引导您深入C#编程的核心概念,提升开发技能,并探索现代软件开发的前沿领域。 课程核心 - 实战导向:通过实际项目案例...

    Visual C#.NET项目实战开发从入门到精通 Part 4

     本书内容详实,案例鲜活,编排合理,讲解透彻,是一本不可多得的讲解Visual C#.NET软件开发的项目实战类书籍。本书适用于有C#语言入门基础,并想进一步精通Visual C#.NET开发工具开发各类软件项目的读者。

    asp.net知识库

    ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf部署 ASP.NET 2.0 Security FAQs Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp.net 2.0 WebPart使用经验点滴 革新:.NET...

    ASP.NET MVC 2

    开发实践篇通过一套完整的留言板系统案例详述ASP.NET MVC 2的开发技巧与流程,以及ASP.NET MVC的安装部署和单元测试方法。  《ASP.NET MVC2开发实战》适合对MVC架构感兴趣的ASP.NET开发人员阅读。

    ChinaDBA.net出品《Redis实战》

    Redis入门指南是一本Redis的入门指导书籍,以通俗易懂的方式介绍了Redis基础与实践方面的知识,包括历史与特性、在开发和生产环境中部署运行Redis、数据类型与命令、使用Redis实现队列、事务、复制、管道、持久化、...

    黄宝翕-ASP.NET MVC4开发指南

    高清扫描版的《ASP.NET MVC4开发指南》(黄保翕著),比较偏重理论,知识深度较浅,适合初学MVC的同学阅读。 ...2.创建正确的开发观念 3.新手上路初体验 4.Routing与ASP.NET生命周期 5.Model相关技术 ...11.安装部署

    .net基于三层架构

    基于三层架构的asp.net项目实战教程,三层架构,com+技术

    北京中科信软VS.NET设计模式与软件架构设计培训1

    第一天 基于微软 .net框架的解决方案设计概述-从理论到实践 第一天将为大家全面介绍基于微软产品和框架的解决方案设计理念;比较各种软件设计方法的利弊以及微软MSF流程概述;同大家探讨软件架构设计的思想。同时...

Global site tag (gtag.js) - Google Analytics