当前位置:首页 > ASP.NET开发经验(5) — 制作功能完善的安装程序

ASP.NET开发经验(5) — 制作功能完善的安装程序

点击次数:1114  更新日期:2010-12-27
\n

  每年到这个时候,周围做技术开发的人都会懈怠下来,听电台上说,这叫“岁未综合症”,但对于部分做与财务或运营相关来人说,年底可能是最忙的一段时间了,象我们这里,每年的12月31日午夜要进行年终决算,计算大家帐户里的利息,所有做运营维护的人员在饱餐了一次丰盛的美食后,就开始了通宵忙碌,当然也有运气不好的开发人员会被拉去做技术支持。
\n

  既然偷点空闲了,就写点 ASP.NET 应用安装程序的东西吧。


\n

  象 ASP、ASP.NET 等诸多基于 Web 的应用程序的安装与部署一直是个麻烦事情,一般都是手工复制、手工修改相关配置文件(主要是数据库配置),和 Windows 上 Installer 或 Linux 上的 RPM 相比,这种方式显然一点技术含量都没有


\n

  对于胖客户端应用,从很早开始就一直都有较为完善的安装程序制作工具了,如 InstallShield、InstallAnywhere、Wise Installer、SWIFT Installer 等等,其中一部分已经实现了跨平台,可以运行在 Windows、Linxu、Java 等平台上。


\n

  从 Visual Studio 6.0 开始,Microsoft 提供了单独的 Setup Tools ,可以用来制作简易的安装程序,后来,这个工具被集成到 VS.NET 2002/2003 中,并且功能做了一些增强,可以制作自定义的对话框等。其优点是能很好的和 VS.NET 的项目进行集成,这样在整个解决方案(Solution)在 Build 的时候,就可以生成安装包,这样便于实现每日构建(Daily Build),同时其缺点仍然存在,不能对安装过程进行更多地控制,提供的对话框功能和类型有限,很少看到有人利用这些对话框实现对系统的一些较为复杂的配置,如绝大多数应用程序中都会涉及的数据库创建、初始数据的生成等工作。


\n

  有很多不错的安装工具中,在安装的过程中就可以对实现对系统进行一些配置,但安装结束后,如果配置发生改变,例如数据库迁移等,又变成一件令人头疼的事情,如果对系统了解较多,知道配置数据的存放位置,就可以手动修改,如果不了解怎么办?难道要先卸载,再重新安装来完成新配置?


\n

  在很多不错的胖客户应用中,配置界面是和安装界面独立的,这样便于在安装系统后,灵活地调整其配置,那么就把它拿到 ASP.NET 的安装程序中吧。


\n


\n

\n

1) 建立解决方案 Solution


\n

2) 建立 Web 应用


\n

3) 新增一个 WinForms 应用 AppConfig,增加一个 WinForm ,完成初始化系统环境,修改系统配置的功能(如生成数据库、生成初始数据、修改 Web.Config 中的数据库连接参数,Machine.Config 或自定义配置文件)等功能,生成 AppConfig.exe


\n

4) 新增一安装项目 Setup,除了将 Web 应用的的“主输出”和“内容输出”加入到项目中,还要将 AppConfig 的“主输出”加入到此项目中


\n

5) 在 Setup 项目中的“自定义操作中”的“安装”节,增加一自定义操作,使其运行来自于 AppConfig 的“主输出” AppConfig.exe


\n

  这样 ASP.NET 的安装程序在运行的最后阶段,会运行 AppConfig 的 WinForm 程序,来完成相关的配置,如数据库等。如果以后配置发生改变,可以直接运行 AppConfig.exe 来更改配置。


\n

  值得一提的是,由于 AppConfig 是 WinForms 应用,相对于 Installer 的对话框而言,有很大的发挥余地,例如我经常在项目中加入 SQL Server 管理对象 Interop.SQLDMO.dll 的引用,这样可以在输入/选择 SQL Server 的列表框中实现自动列出可用的 SQL Server 名称列表,看起来很专业的样子,用户很喜欢,后果很不错。


\n

  来源:moslem的blog

\n