Windows应用程序打包与部署WinForms应用程序完成之后,会将所有程序打包并且制作成安装程序以便用户在使用过程中可以方便的将应用程序部署到计算机上。
应用程序的打包和安装过程比较简单,本章通过详细的文字讲解如何对应用程序进行打包与安装,通过本章的学习,读者能够学到以下内容。
了解Windows Installer概述。
Windows应用程序部署。
为Windows安装程序添加快捷方式。
为Windows安装程序创建文件关联。
为Windows安装程序添加注册表项。
安装及卸载Windows程序。
24.1 Windows Installer简介Windows Installer基于数据驱动模型,该模型在一个软件包中提供所有安装的数据和指令。
相比而言,传统的脚本安装程序基于过程模型,为应用程序安装提供脚本指令。
脚本安装程序强调“如何”安装;Windows Installer则强调安装“什么”。
利用Windows Installer每台计算机都保留一个信息数据库,其中的信息与它所安装的每个应用程序有关,包括文件、注册表项和组件。
卸载应用程序时,将检查数据库以确保在移除该应用程序前没有其他应用程序依赖于文件、注册表项或组件。
这样可防止在移除一个应用程序后中断另一个应用程序。
Windows Installer还支持自我修复,即应用程序能够自动重新安装因用户误删除而丢失的文件。
另外,Windows Installer提供回滚安装的能力。
例如,如果应用程序依赖于某个特定的数据库,但在安装过程中未找到该数据库,则可以中止安装,计算机则返回到安装前的状态。
Visual Studio 2008中的部署工具建立在Windows Installer的基础之上,可以迅速部署和维护使用Visual Studio 2008生成的应用程序。
Windows Installer 3.5可以安装和管理公共语言运行库程序集。
开发人员可以将程序集安装到全局程序集的缓存中,或者安装到为特定应用程序隔离的位置上。
这种隔离应用程序的改进功能是.NET Framework的一个重要部分。
24.2 Windows应用程序部署前面已经对Windows Installer工具做了简单介绍,下面演示如何为Windows应用程序创建一个安装程序,其中包括设置快捷方式、文件关联、添加注册表项、显示自定义对话框以及检查Internet Explorer的版本。
24.2.1 创建部署项目(1)在Visual Studio 2008中打开一个想要部署的项目,在“解决方案资源管理器”中,单击鼠标右键,弹出图24.1所示的窗口。
图24.1 在项目中创建部署项目(2)在图24.1中,单击“添加”项目下的“新建项目”,弹出图24.2所示的“添加新项目”对话框。
在该对话框中,选择“项目类型”/“其他项目类型”节点,单击“安装和部署”项目,然后单击“模板”/“安装项目”,在“名称”文本框中输入项目名称,在“位置”下拉列表框中选择保存位置,如图24.2所示。
图24.2 “添加新项目”对话框(3)单击“确定”按钮,将安装项目添加到“解决方案资源管理器”中,并且“文件系统编辑器”处于打开状态,如图24.3所示。
图24.3 文件系统编辑器(4)在“文件系统(Setup2)”下的“目标计算机上的文件系统”中使用鼠标右键单击“应用程序文件夹”,在弹出的快捷菜单中选择“添加\项目输出”命令,如图24.4所示。
(5)在打开的“添加项目输出组”窗口中,从“项目”下拉列表框中选择“Windows Application1”;从列表中选择“主输出”选项;在“配置”下拉列表框中选择“(活动)”选项,如图24.5所示。
图24.4 向打包程序中添加项目输出图24.5 “添加项目输出组”对话框(6)单击“确定”按钮,即可将“内容文件”添加到项目中。
在文件系统编辑器中,将会出现输出文件,如图24.6所示。
(7)在“解决方案资源管理器”中选择“Setup2”项目,单击鼠标右键,在弹出快捷菜单中选择“生成”命令,生成安装文件,项目部署成功。
图24.6 添加项目输出效果24.2.2 可选的部署功能应用程序部署成功后,为了在每台计算机都保留一个应用程序信息数据库,还需要为安装程序选择可选的部署功能。
例如,在安装过程中设置快捷方式、文件关联和添加注册表项等。
1.为基于Windows的应用程序创建快捷方式为应用程序创建一个快捷方式,该快捷方式将在安装过程中放置到目标计算机的桌面上。
(1)在“解决方案资源管理器”中选择“Setup2”项目,在“目标计算机上的文件系统”中,选择“主输出来自WindowsApplication1(活动)”节点。
在“操作”菜单上选择“创建主输出来自WindowsApplication1(活动)的快捷方式”,如图24.7所示。
图24.7 为安装项目创建快捷方式(2)此时,将会添加一个名为“创建主输出来自WindowsApplication1(活动)的快捷方式”节点,将其重命名为“测试”,如图24.8所示。
图24.8 创建快捷方式(3)选择“测试”快捷方式,将其拖放至“目标计算机上的文件系统”列表下“用户桌面”文件夹下,至此项目快捷方式创建完成。
如图24.9所示。
2.为基于Windows的应用程序创建文件关联此步骤为“Setup2”添加文件关联,以便双击.vbn文件时打开“WindowsApplication1”应用程序。
(1)在“解决方案资源管理器”中选择“Setup2”项目并单击鼠标右键,在弹出的快捷菜单中选择“视图\文件类型”命令,如图24.10所示。
图24.9 将快捷方式放在桌面图24.10 文件类型编辑器(2)此时在项目的左侧会出现一个“文件类型”列表框,如图24.11所示。
(3)在“文件类型”编辑器中,选择“目标计算机上的文件类型”节点。
在“操作”菜单上选择“添加文件类型”。
此时,将会添加一个名为“新文档类型#1”的节点,选择该节点,单击鼠标右键,弹出右键菜单,如图24.12所示。
图24.11 文件类型列表框图24.12 菜单窗口(4)单击“属性窗口”命令,弹出属性窗口。
选择“Command”属性,单击按钮,在“选择项目中的项”对话框中,在“查找范围”列表框中选择“应用程序文件夹”选项,如图24.13所示。
然后单击“确定”按钮关闭对话框设置返回属性窗口。
(5)在属性窗口,将文件类型的“Extensions”属性设置为vbn,效果如图24.14所示。
3.为基于Windows的应用程序添加注册表项此步骤将一个注册表项以及相应的值添加到注册表中。
运行时,可以从应用程序代码中引用此注册表项以检索用户特定的信息。
(1)在“解决方案资源管理器”中选择“Setup2”项目并单击鼠标右键,在弹出的快捷菜单中选择“视图\注册表”命令。
此时,将会显示“注册表编辑器”。
在“注册表编辑器”中,选择“HKEY_CURRENT_USER”节点并展开它,再展开“Software”节点,如图24.15所示。
图24.13 “选择项目中的项”对话框图24.14 设置Extensions属性图24.15为应用程序添加注册表项(2)使用鼠标右键单击“[Manufacturer]”节点,从弹出的菜单中选择“重命名”命令,将注册表项重命名为“UserChoice”。
“[Manufacturer]”节点用方括号括起来,表示它是一个属性。
它将被替换为输入的部署项目的Manufacturer属性值。
(3)使用鼠标右键单击“UserChoice”节点,从弹出菜单选择“新建\环境字符串值”命令,如图24.16所示。
图24.16 新建环境字符串(4)使用鼠标右键单击“新值#1”节点,从弹出的菜单中选择“属性窗口”命令,弹出属性窗口。
将“Name”属性设置为“TextColor”,“Value”属性设置为“Black”,如图24.17所示。
图24.17 为应用程序注册表项添加特定值24.3 安装及卸载Windows程序上一节中已经讲解了如何创建Windows程序部署文件,本节将介绍如何将安装程序安装到本地计算机上以及如何卸载应用程序。
24.3.1 在本地计算机上安装此步骤运行安装程序并在本地计算机上安装“Setup2”。
在打包应用程序的目标位置中,打开“Setup2”文件,找到可执行文件Setup.exe并双击运行该文件,即可进行Windows程序的安装。
按照系统提示单击“下一步“按钮即可完成安装。
必须在计算机上拥有安装权限才能运行该安装程序。
24.3.2 部署到其他计算机此步骤运行安装程序并将“Setup2”安装到其他计算机。
(1)在存放打包应用程序的目标位置中,将Setup2文件以及该文件下的子文件复制到另一台计算机上。
如果要在未联网的计算机上安装,请将文件复制到类似CD-ROM的传统媒体中。
(2)在目标计算机上双击Setup.exe可执行文件,即可进行Windows程序的安装,按照系统提示单击“下一步“按钮即可完成安装。
必须在计算机上拥有安装权限才能运行该安装程序。
24.3.3 卸载安装应用程序此步骤讲解如何卸载应用程序。
使用控制面板中的“添加/删除程序”工具卸载该应用程序。
在“添加/删除程序”中,选择“Setup2”,然后单击“删除”按钮,将从桌面上移除图标并从计算机上删除安装的应用程序文件和文件夹。
如果要从开发计算机上卸载应用程序,应在“项目”菜单上选择“卸载”选项。