您的位置: 网站首页 > 程序开发 > C#程序设计 > 第14章 应用程序部署 > 【14.1 部署工程的建立】

14.1 部署工程的建立

 

应用程序的开发是程序设计的重要部分,在程序开发结束后就会面临打包部署的问题。开发人员必须通过一种友好的方式,使程序顺利地安装到最终用户的操作系统中。本章将会向读者介绍应用程序部署的相关问题。

本章主要内容

&        应用程序部署的概念

&        Visual Studio 2005提供何种部署支持

&        如何规划一个安装程序

&        如何设计安装程序的界面

&        如何设置安装目录

&        如何设置快捷方式

&        如何编辑注册表

&        如何关联文件类型

&        如何设置启动条件

14.1  部署工程的建立

要创建一个完整的应用程序,必须在最后阶段建立一个良好的部署工程。将完整的应用程序打包为一个安装程序,使最终用户便于使用。本章进行相关的知识介绍。

14.1.1  Windows Installer介绍

Windows Installer是微软公司提供的一种系统服务,用来安装和管理系统中的应用程序。为应用程序的开发、定制、安装和升级等一系列过程提供了一种标准化的方法和手段。Windows Installer提供了以下基本功能:

·    可撤销型操作:即所有的安装操作都是事务形式的,也就是说,对于Windows Installer执行的每项安装任务,都会对应产生一个可以撤销(Undo)的操作,支持用户在需要时撤销对系统所做的任何修改。另外,如果在安装过程中发生了非预期错误,Windows Installer还可以将系统还原回安装前的状态。

·    自我修复:Windows Installer支持应用程序的“自我修复”能力。应用程序可以在启动时检查各种常见的安全问题,如文件或注册表键丢失问题,并且可以自动修复。

·    选项安装:Windows Installer支持应用程序的选项安装。例如,Microsoft Office Word字处理程序的拼写检查功能在默认情况下不会被安装,但是用户也可以根据需要安装该功能。

·    非管理员权限下的安装:在用户不具有管理员权限的环境中,用户一般没有安装应用程序所需的权限或能力。在大多数情况中,用户没有对计算机的“Program Files”文件夹或者“HKEY_LOCAL_MACHINE”注册表位置的“写”权限。例如,如果系统管理员通过组策略允许用户安装某个程序包,Windows Installer便可以代表用户进行程序的安装。

·    应用程序状态管理:Windows Installer为应用程序提供了一组标准的Win32应用程序编程接口(API)和自动化接口。系统管理员可以使用它们查询程序在计算机中的安装状态。API能够查询程序的当前状态,校验现有状态,或者修复受损的状态,并且能够从一种状态过渡到另一种状态。

Windows Installer软件安装技术包括以下几个方面的内容。

·    适用于32Windows操作系统的Windows Installer服务器。

·    一个用于存储有关配置和安装信息的新软件包文件格式。

Windows Installer不仅仅可以用于程序的安装,还可以用于对安装的软件进行有效的管理。Windows Installer负责软件的安装,管理软件组件的添加和删除,监视文件复原,并通过使用撤销来维护基本的灾难恢复。此外,Windows Installer还支持从多个源安装和运行应用程序,并且可以由要安装自定义程序的开发人员定制。

Visual Studio 2005的维护界面如图14-1所示。单击“下一步”按钮,可以进行相关维护,如图14-2所示。

14-1  Visual Studio 2005维护模式1

14-2  Visual Studio 2005维护模式2

采用Windows Installer技术的安装程序可以在“控制面板”的“添加或删除程序”中看到,如图14-3所示。

14-3  添加或删除应用程序

14.1.2  Visual Studio 2005向导

新建一个项目,在左侧的菜单中选择“其他项目类型”节点中的“安装和部署”选项,如图14-4所示。

14-4  创建安装项目

可以看到,Visual Studio 2005中提供了许多向导供开发人员选择。

1.安装项目

安装项目用于创建安装程序,以便分发应用程序。最终的Windows Installer(后缀名为.msi)文件包含应用程序、其他任何依赖文件以及有关应用程序的相关信息(如注册表项和安装说明)。当.msi文件在另一台计算机上分发和运行时,可以比较便捷地确认安装所需的一切都已就绪。如果安装因某种原因而失败(例如,目标计算机的某些环境不满足要求),则将被撤销,计算机将返回到安装前的状态。

2.合并模块项目

用户可以通过使用合并模块项目创建可重用的安装组件。与允许开发人员在应用程序之间共享代码的动态链接库一样,合并模块允许开发人员在Windows Installer之间共享安装代码。

合并模块(后缀名为.msm)是一个软件包,它包含安装组件所需的所有文件、资源、注册表项和安装逻辑关系等组件。合并模块无法单独安装,而是必须在Windows Installer.msi)文件的环境内使用。

合并模块使开发人员可以方便地捕获特定组件的所有依赖项,从而确保安装正确的版本。合并模块分发后,就不应再修改它,而应为组件的每个后续版本创建新的合并模块。

为了避免版本问题,对于将由多个应用程序共享的任何组件或文件,应始终使用合并模块。

3CAB项目

使用CAB项目,可以创建.Cab文件,以便对可以从Web服务器下载到Web浏览器的ActiveX控件进行打包。

与其他部署项目类型不同,Visual Studio 2005没有提供处理CAB项目的编辑器。文件和项目输出可以添加到“解决方案资源管理器”面板的CAB项目中,属性可以在“属性”面板或“项目属性”页中进行设置。CAB项目的属性允许开发人员指定文件压缩级别、设置显示名称、版本信息以及指定依赖文件在Web上的位置等。

4Web安装项目

除了支持创建通过传统媒体发布的Windows Installer外,Visual Studio 2005中的部署工具还支持部署到Web服务器。与简单的复制文件相比,使用部署在Web服务器上安装文件提供的优点是,部署可以自动处理任何与注册和配置有关的问题。

另外,Windows应用程序的安装程序可以部署到Web服务器,以便用户稍后可以从网站下载和运行此类应用程序。

5.安装向导

安装向导使开发人员可以将部署项目添加到解决方案中并配置它以部署用户的应用程序。使用此向导创建的项目将部署文件放在本地计算机上,以便以后分发。

6.智能设备CAB项目

智能设备CAB项目提供了支持智能设备的安装项目,本书将不讨论这方面的内容。其中,安装向导是最为简单的一种方式,下面认识一下安装向导的过程。

1)在图14-4的界面中,单击“确定”按钮,弹出安装向导的界面,如图14-5所示。

2)按图14-5所示界面中的提示,单击“下一步”按钮,如图14-6所示。

  

14-5  安装向导1                            14-6  安装向导2

有以下4种项目类型以供选择。

·    Windows应用程序创建一个安装程序。

·    Web应用程序创建一个安装程序。

·    Windows Installer创建一个合并模块。

·    创建一个可下载的CAB文件。

3)通常最常用的是第一个选项“为Windows应用程序创建一个安装程序”,此处选中该单选按钮,单击“下一步”按钮,如图14-7所示。此处可以选择除应用程序之外的附加文件,如自述文件(通常为Readme.txt)或其他未在应用程序中包括的文件。单击“添加”按钮,如图14-8所示,可以添加相应的文件。

14-7  安装向导3

14-8  添加文件

4)添加完毕后,单击“下一步”按钮,如图14-9所示。

14-9  安装向导4

5)单击“完成”按钮,Visual Studio 2005将会建立一个安装项目,其界面大致如图14-10所示。

14-10  安装项目界面

最后,读者即在这个界面中定制自己的安装程序了。