日期:2014-02-21  浏览次数:20514 次

6.2 VS.NET Web安装项目的特点

VS.NET中的部署项目以Windows Installer的功能为基础,允许我们执行如下操作:

⑴ 读取、写入注册键。

⑵ 在目标服务器的Windows文件系统中创建目录。

⑶ 提供注册组件的机制。

⑷ 提供安装期间从用户收集信息的机制。

⑸ 允许设置启动条件,例如检查用户名字、计算机名字、当前的操作系统、已经安装的软件、是否已经安装了.NET CLR,等等。

⑹ 允许在安装结束后运行自定义的配置程序或脚本。

在下面一节中,我们将了解如何用VS.NET Web安装项目来部署DeploymentExampleWebApp。

七、创建Web安装项目

首先我们在DeploymentExampleApp ASP.NET Web应用程序解决方案中创建一个Web安装程序项目:选择菜单“文件”→“新建”→“项目”,在“新建项目”对话框中,指定项目类型“安装和部署项目”,指定模板“Web安装项目”,如图五所示。



图五


创建项目之后,接下来要把ASP.NET Web应用程序的程序集和内容文件加入到安装项目。在解决方案资源管理器中右击DeploymentExampleWebAppSetup项目,选择菜单“添加”→“项目输出”,在“添加项目输出组”对话框中,“项目”一栏选择DeploymentExampleWebApp,再从列表选择“主输出”,如图六。



图六


加入了项目输出之后,接下来要把相关的内容文件(包括.aspx文件、图形文件等)加入到项目。再次打开“添加项目输出组”对话框,这一次从列表选择“内容文件”,如图七。



图七


在Web安装项目中加入了“主输出”和“内容文件”之后,解决方案资源管理器应该类如图八所示。



图八


通过Web安装项目的属性窗口可以设置许多属性,这些属性决定了Windows安装文件运行时显示的内容和行为方式。在解决方案管理器中右击DeploymentExampleWebAppSetup,选择菜单“属性”,就可以打开图九的属性设置窗口。



图九


从图九可以看出,属性窗口允许设置作者、产品描述、厂商、支持电话等信息,这些信息对于应用的最终用户来说可能非常有用。

八、安装ASP.NET Web应用程序

创建好Windows安装文件(.msi文件)之后,再到目标服务器上安装ASP.NET应用就很方便了,只要在Windows资源管理器中双击.msi文件即可,这时安装向导启动,引导用户完成安装过程。图十显示了安装期间显示的第一个对话框。



图十


点击图十对话框的“下一步”按钮,出现图十一的对话框,在这里可以指定Web应用要安装到哪一个虚拟目录。这是VS.NET的Web安装项目最方便的特性之一,虚拟目录创建已完全自动化,根本不需要用户手工操作。在本文的第二部分中,我们将看到如何在安装过程中设置虚拟目录的特殊属性,例如目录安全性等。



图十一


在图十一的对话框中,我们可以点击“磁盘开销”按钮了解安装该Web应用程序所需的磁盘空间。点击“下一步”,出现图十二的对话框,向导要求我们确认安装。



图十二


如果在图十二的对话框中点击“下一步”,安装操作正式开始,应用程序被安装到Web服务器上。如果应用程序安装成功,出现图十三的对话框。



图十三


安装好应用程序后,从控制面板的“添加或删除程序”窗口可以看到刚才安装的ASP.NET应用程序,以后,我们可以随时从这里卸载刚才安装的ASP.NET Web应用。

九、结束语

XCOPY和“复制项目”都是不错的部署技术,主要的特点是简单,但需要一些手工操作。它们非常适合安装过程比较简单的应用,但在有些情况下,我们需要在安装过程中执行更加复杂的操作,这时最好利用Windows Installer技术来部署应用。用Windows Installer来部署ASP.NET Web应用具有下列优点:

⑴ 如果用Windows Installer安装的应用被损坏,可以通过Windows安装包的修复功能自我修复。如果采用其他部署方式,损坏的组件必须手工替换。

⑵ 使用Windows Installer技术时,我们还可以利用自动回退功能的优势。当安装过程失败时,自动回退功能不仅确保已安装的组件被正确删除,而且保证了机器能够恢复到安装程序启动之前的状态。

⑶ 由于Windows Installer用一个.msi安装数据库保存所有的安装信息,所以有可能获取复制了哪些文件、创建了哪些注册键之类的信息。

⑷ 如果ASP.NET应用要分发给多个用户使用(或者将软件打包销售),一种方便、自动化的部署机制是必不可少的,象XCO