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