第13章 后台数据库系统的移植和升级以及系统的安装和部署 在管理类软件的使用过程中,由于种种原因,经常需要把一个计算机上的软件转移到另一台计算机上。对于软件本身,需要使用该软件的安装程序将软件安装到另外一台计算机上;对于该软件所使用的数据库,往往需要把它从原来的机器移植到另外一台机器上。 对于后台数据库为Access的数据库系统,随着时间的推移,由于数据量的扩容和用户需求的增加,原有数据库系统往往不能满足需求,这就需要把Access数据库系统移植到SQL Server数据库系统。 此外,随着技术的发展,SQL Server不断地推出新版本。为了更好地满足用户的要求,需要把现有版本的SQL Server升级到比较新的版本。需要注意的是,在升级的过程中要求保持原有的数据库结构不变,并且不发生数据丢失的事故。在数据库升级完成后,开发人员可以对数据库进行修改或者添加额外功能。 这一章我们就来介绍数据库系统的移植和升级,此外,还将介绍如何打包和发布Visual Basic .NET应用程序。 13.1 后台数据库系统的移植 本节我们来介绍如何在不同的数据库系统之间进行数据移植操作。进行这些操作有一个共同的前提:读者必须在自己机器上安装了相应的数据库管理软件。本节涉及到的数据库管理软件包括:Access、SQL Server 2000、Oracle和MySQL等。下面分别来进行介绍。 13.1.1 Access数据库移植到SQL Server数据库 对于一些比较简单的管理系统,后台数据库往往采用Access数据库。但随着数据量的增大和用户要求的增加,Access数据库就会逐渐不能满足系统的要求,经常需要把它移植到SQL Server数据库管理系统。这里我们以Access自带的NorthWind数据库为例,来介绍如何把该数据库移植到SQL Server 2005数据库管理系统中。具体步骤如下。 (1) 首先打开SQL Server 2005的Management Studio,相对于SQL Server 2000,Management Studio功能上集成了原来的企业管理器和查询分析器的功能。在Management Studio窗体左边的树状目录中,右击“数据库”文件夹,在弹出的菜单中选择“新建数据库”命令,如图13-1所示。 图13-1 选择“新建数据库”命令 (2) 在弹出的“新建数据库”窗口中设置新建数据库的有关属性,如图13-2所示。这里仍然设置数据库的名称为NorthWind,其他设置为默认值,然单击“确定”按钮关闭该窗口。 图13-2 设置新建数据库的属性 (3) 返回到Management Studio窗口中,可以看到刚才新建的Student数据库。右击该数据库,在弹出的菜单中选择“任务|导入数据”命令,如图13-3所示。 图13-3 进行导入数据操作 (4) 在弹出的“SQL Server 导入和导出向导”窗口,单击“下一步”按钮,将出现如图13-4所示的窗口。在该窗口中需要设置数据源,数据库文件名,用户名和密码信息。在选择数据源下拉列表框中选择Microsoft Access选项。然后键入.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件,用户名和密码文本框为空,然后单击“下一步”按钮。 图13-4 选择数据源 (5) 在弹出的窗口中需要制定数据复制目标。这里采用默认的目标和数据服务器,如图13-5所示。数据库为刚才新建的NorthWind数据库,单击“下一步”按钮。 图13-5 “选择目标”窗口 (6) 在弹出的“指定表复制或查询”窗口中需要指定是从数据源复制一个或多个表或视图,还是从数据库复制查询结果。这里单击“复制一个或多个表或视图的数据”单选按钮,如图13-6所示,然后单击“下一步”按钮。 图13-6 “指定表复制或查询”窗口 (7) 在弹出的“选择源表和源视图”窗口中需要选择一个或多个要复制的表或视图。这里单击“全选”按钮,如图13-7所示, 然后单击“下一步”按钮。 图13-7 “选择源表和源视图”窗口 (8) 弹出的“保存并执行包”窗口询问是否保存SSIS包。这里选中“立即执行”复选框,如图13-8所示,然后单击“完成”按钮。 图13-8 “保存并执行包”窗口 (9) 在弹出的“完成该向导”窗口中对前面进行的一些操作和选择的选项进行了总结,如图13-9所示。如果确认信息无误,单击“完成”按钮,则完成了数据库的升级操作。 图13-9 “完成该向导”窗口 (10) 最后弹出“正在执行操作”窗口,如图13-10所示,该窗口反映了当前正在进行的操作和该操作进行的程度。升级完成以后,单击“关闭”按钮关闭该窗口。 图13-10 升级进度窗口 在移植完成后需要修改程序代码中连接数据库的字符串。该字符串一般在配置文件或系统资源里。因为本书主要是讲解在SQL Server 2005下的编程,关于如何修改Access连接字符串,这里就不再详细介绍了。 13.1.2 从SQL Server 2000移植到SQL Server 2005 每当有新版本的软件推出,都会对旧版本软件的功能进行某些扩展或者修改旧版本的一些缺陷。因此,往往也需要对软件进行升级。下面以pubs数据库为例,来介绍如何把数据库从SQL Server 2000移植到SQL Server 2005中。步骤如下。 (1) 在SQL Server 2005中创建pubs数据库,关于如何在SQL Server 2005中创建数据库在前面已经多次介绍过,这里就不重复了。 (2) 选择“开始”|“所有程序”|“Microsoft SQL Server 2005”|“SQL Server Management Studio”命令,弹出如图13-11所示的对话框。 图13-11 “连接到服务器”对话框 (3) 在“服务器名称”下拉列表中选择“HZIEE-2E53F913F\ZMH2000”选项,这是SQL Server 2000的服务器,如图13-12所示。 图13-12 选择服务器 (4) 单击“连接”按钮,打开HZIEE-2E53F913F\ZMH2000服务器,如图13-13所示。 图13-13 SQL Server 2000服务器 (5) 在左侧“对象资源管理器”中右击“pubs”数据库,从弹出的快捷菜单中选择“任务”|“导出数据”命令,弹出如图13-14所示的对话框。 图13-14 导入和导出向导对话框 (6) 单击“下一步”按钮,弹出如图13-15所示的“选择数据源”对话框。 图13-15 “选择数据源”对话框 (7) 保持现有选项,单击“下一步”按钮,弹出如图13-16所示的对话框。 图13-16 “选择目标”对话框 (8) 选择“服务器名称”为“HZIEE-2E53F913F”,单击“下一步”按钮,弹出如图13-17所示的对话框。 图13-17 “指定表复制或查询”对话框 (9) 选择“复制一个或多个表或视图的数据”单选按钮,单击“下一步”按钮。弹出如图13-18所示的对话框。 图13-18 “选择源表或源视图”对话框 (10) 单击“编辑”按钮,弹出如图13-19所示的对话框。 图13-19 “列映射”对话框 (11) 单击“编辑SQL”按钮,弹出如图13-20所示的对话框。 图13-20 “Create Table SQL语句”对话框 (12) 对于MySQL或者Oracle,有些数据结构和SQL Server不同,可以在这里修改字段的数据结构。因为SQL Server 2000和SQL Server 2005支持的数据结构基本相同,因此不需要修改创建表的语句。关闭“Create Table SQL语句”对话框和“列映射”对话框,回到“选择源表或源视图”对话框,单击“下一步”按钮,弹出如图13-21所示的对话框。 图13-21 “保存并执行包”对话框 (13) 单击“下一步”按钮,弹出如图13-22所示的对话框,验证前面的选项。 图13-22 验证选项 (14) 单击“完成”按钮,执行“导出数据”操作,如图13-23所示。 图13-23 “正在执行操作...”对话框 (15) 执行完毕之后,得到如图13-24所示的对话框。 图13-24 “执行成功”对话框 (16) 在“对象资源管理器”中依次展开“HZIEE-2E53F913F”服务器节点、“数据库”节点和pubs节点,如图13-25所示。 图13-25 对象资源管理器 从图13-25中可以发现,SQL Server 2000下的pubs数据库已经移植到2005服务器中。至此,把pubs数据库从SQL Server 2000移植到SQL Server 2005的操作全部完成。下面继续介绍如何把数据库从SQL Server 2005移植到Oracle数据库中。 13.1.3 从SQL Server移植到MySQL 本节使用SQL脚本实现把pubs数据库从SQL Server移植到MySQL。由于SQL Server与MySQL的数据库文件不一致,而且数据类型也不完全一样,需要把SQL Server中创建数据表的SQL脚本更改成能在MySQL中执行的SQL脚本,然后在MySQL中执行这些SQL脚本。数据库移植分为三个阶段,分别为:导出pubs数据库的SQL脚本,修改导出的SQL脚本并移植到MySQL数据库,下面分别来介绍。 导出pubs数据库的SQL脚本 导出pubs数据库的SQL脚本步骤如下: (1) 打开SQL Server Management Studio,在数据库文件夹下的pubs数据库上右击,选择“任务”|“生成脚本”命令,弹出如图13-26所示的“脚本向导”对话框。 (2) 单击“下一步”按钮,在弹出的对话框中选择pubs数据库,如图13-27所示。 (3) 单击“下一步”按钮,弹出如图13-28所示的“选择脚本选项”对话框。 (4) “选择脚本选项”对话框的所有选项使用默认值。单击该对话框的“下一步”按钮,弹出“选择对象类型”对话框,单击“全选”按钮,将所有对象全部选中,如图13-29所示。 图13-26 脚本向导初始页 图13-27 选择数据库 图13-28 选择脚本选项 图13-29 选择对象类型 (5) 单击“下一步”按钮,弹出“选择表”对话框,将所有表都选中,如图13-30所示。 图13-30 选择表 (6) 单击“下一步”按钮,设置脚本的输出选项,设置完毕之后的对话框如图13-31所示。 (7) 单击“下一步”按钮,显示“脚本向导摘要”对话框,如图13-32所示。 (8) 检查脚本信息无误,单击“完成”按钮,执行生成脚本的操作,操作完成之后,弹出如图13-33所示的对话框。 至此,从pubs中导出SQL脚本成功完成。打开D:\Zhouminghui目录,可以看到Transform.sql文件已经生成。下面来修改Transform脚本文件。 图13-31 输出选项 图13-32 脚本向导摘要 图13-33 生成脚本进度 修改SQL脚本 在Transform.sql文件中,包含了pubs数据库的所有数据表的SQL脚本,这里以publishers数据表为例,介绍如何将它修改成能够在MySQL中执行的SQL脚本。 Transform.sql文件中,与publishers相关的SQL脚本如下所示: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[publishers]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[publishers]( [pub_id] [char](4) NOT NULL, [pub_name] [varchar](40) NULL, [city] [varchar](20) NULL, [state] [char](2) NULL, [country] [varchar](30) NULL ) ON [PRIMARY] END 要将上面这段SQL脚本修改成能够在MySQL中执行的SQL脚本,做以下几方面的修改: ● 数据类型:MySQL数据库中没有MONEY类型和numeric类型,对应的类型为DECIMAL类型。此外,MySQL中没有Image类型,使用BLOB类型替代,其他数据类型基本一致。 ● 数据表项的定义形式:生成的SQL脚本中,各数据表项的名称和数据类型的名称都用中括号“[]”括起来,而在MySQL数据库中不识别中括号。 ● 是否为空的定义形式:生成的SQL脚本中,数据表项是否可以为空是以COLLATE Chinese_PRC_CI_AS NULL形式定义,而在MySQL数据库中不识别COLLATE Chinese_PRC_CI_AS。 ● 主键的定义形式:在MySQL数据库中,各数据表项定义之后紧跟着对主键作了定义; ● 语句结尾的表示方式:在MySQL数据库中,不识别“ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO”。 ● MySQL不支持dbo.表名的写法。 ● 在创建多个表的时候,Create Table语句之间需要使用“;”隔开。 按照上面的修改要求,修改后的SQL脚本如下所示: CREATE TABLE discounts( discounttype varchar(40) NOT NULL, stor_id char(4) NULL, lowqty smallint NULL, highqty smallint NULL, discount decimal(4, 2) NOT NULL ) 按照上面的修改要求,对其他数据表也可以做类似的修改。将修改后的SQL脚本以文件名pub.sql保存到D:\根目录中。 移植到MySQL数据库 接下来需要将修改后的SQL脚本导入MySQL数据库中,这个过程主要是针对D:\ pub.sql进行操作。具体步骤如下: (1) 选择“开始”|“所有程序”|“MySQL”|“MySQL Server 5.0”|“MySQL Command Line Client”命令,运行MySQL命令行客户端程序。运行该程序时,首先需要用户输入密码。输入正确的密码并按Enter键后,显示结果如图13-34所示。 图13-34 MySQL命令行程序 (2) 输入“Show DATABASES;”命令并按Enter键,显示MySQL数据库管理软件中已有的数据库。显示的结果如图13-35所示。 图13-35 显示原有数据库 (3) 输入“CREATE pub;”命令并按Enter键,执行创建pub数据库操作,操作完成后显示如图13-36所示的信息。 图13-36 创建数据库 (4) 输入“Show DATABASES;”命令并按Enter键,可以看到刚才创建的数据库pub,如图13-37所示。 图13-37 创建pub数据库后显示所有数据库 (5) 输入“USE pub;”命令,按Enter键,显示当前数据库改变的信息,如图13-38所示。 图13-38 改变当前数据库 (6) 输入“source d:\pub.sql;”,按Enter键,导入数据库的数据表结构和数据,如图13-39所示。 (7) 输入“Show Tables;”命令,按Enter键,显示导入的数据表,如图13-40所示。 图13-39 数据导入 图13-40 pub数据库的所有表 至此,把数据从SQL Server 2005导入到MySQL的操作完毕。上面介绍的都是在同一台计算机上进行数据导入/导出操作,读者很容易把这些操作扩展到不同的机器之间。下面来介绍使用另外一种方式在两台计算机之间进行数据导入/导出操作。 13.1.4 两台计算机之间的数据库移植 正如前面所说,在两台计算机之间移植数据库也是一个非常常见的操作。在两台计算机之间移植数据库方法有两种,分别为备份/还原数据库和分离/附加数据库。通过备份/还原数据库的方法移植数据库在前面已经介绍过了,这里以刚才从Access数据库中移植过来的数据库为例,来介绍如何通过分离/附加的方式在两台计算机之间进行数据库移植。 分离数据库是指将数据库从SQL Server实例中删除,但使数据库在其数据文件和事务日志文件中保持不变。之后,就可以使用这些文件将数据库附加到任何SQL Server实例。分离数据库的具体步骤如下: (1) 打开SQL Server Management Studio,在数据库文件夹下的NorthWind数据库上右击,选择“任务”|“分离”命令,弹出如图13-41所示的“脚本向导”对话框。 (2) 这里保留“分离数据库”对话框的默认选项,单击“确定”按钮执行分离数据库操作。 (3) 分离数据库操作结束之后,在SQL Server Management Studio中可以发现该数据库已经消失。至此,分离数据库操作结束。 下面在另外一台计算机上附加刚才分离的数据库。步骤如下: (1) 在SQL Server Management Studio对象资源管理器中,右击“数据库”,在弹出的快捷菜单中选择“任务”|“附加”命令,弹出如图13-42所示的对话框。 图13-41 分离数据库对话框 图13-42 附加数据库对话框 (2) 单击“确定”按钮,弹出 “定位数据库文件”对话框,在该对话框中选择NorthWind.mdf文件,如图13-43所示。 (3) 单击“确定”按钮,返回到“附加数据库”对话框,该对话框显示要附加的数据库的信息,如图13-44所示。 图13-43 定位数据库文件 图13-44 定位数据库文件之后的“附加数据库”对话框 (4) 单击“确定”按钮,执行附加数据库操作。在 SQL Server Management Studio 对象资源管理器中刷新数据库,可以看到刚才附加的NorthWind数据库。 至此,后台数据库的移植就介绍完了,下面来介绍如何升级后台数据库。 13.2 后台数据库系统的升级 在运行安装程序以升级到SQL Server 2005之前,应该首先检查系统的软硬件要求。对于常见的SQL Server 2005 Express版和SQL Server 2005开发版都可以安装在Windows XP SP2上,其他版本需要安装在Windows Server系列的操作系统上。下面来介绍如何通过分离和附加来升级数据库。 从SQL Server 7.0或SQL Server 2000升级到SQL Server 2005时,需要满足以下限制: ● 使用SQL Server 7.0或2000创建的master、model或msdb数据库的备份不能附加到SQL Server 2005中。 ● 包含创建索引操作的SQL Server 7.0日志文件不能附加到SQL Server 2005中。 ● 使用SQL Server 6.5或更早版本创建的数据库备份采用的格式不兼容,不能附加到SQL Server 2005中。 通过分离/附加来升级数据库的具体步骤如下: (1) 使用sp_detach_db存储过程从SQL Server 7.0或2000服务器实例分离数据库。SQL语句如下: USE master; GO EXEC sp_detach_db @dbname = N'pubs'; GO (2) 移动所分离的数据库文件和日志文件,将NorthWind文件(NorthWind.mdf 和 NorthWind_log.ldf)从原来版本的目录移动到SQL Server 2005的目录下。 (3) 使用带有FOR ATTACH或FOR ATTACH_REBUILD_LOG选项的CREATE DATABASE Transact-SQL语句,将复制的文件附加到SQL Server 2005服务器实例。SQL语句如下: USE master; GO CREATE DATABASE pubs ON PRIMARY FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\pubs.mdf') LOG ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\ MSSQL.1\MSSQL\Data\pubs_log.ldf') FOR ATTACH; GO (4) 对已升级的数据库运行DBCC UPDATEUSAGE。 13.3 Windows系统软件打包和发布 应用程序的安装和部署是指将应用程序打包并安装在另一台计算机中的过程。这个过程主要包括安装新的应用程序、重新安装以及反安装和升级。如果另一台计算机不具备运行该应用程序的环境,则还需要安装运行环境。下面以“房地产管理系统”为例来介绍如何安装和部署Visual Basic .NET应用程序。 13.3.1 在.NET中创建应用程序部署 在创建安装和部署项目之前,有必要简要介绍一下在Visual Studio 2005中提供的模板,以使读者有个大致的了解: ● CAB项目:该模板用于创建归档文件(cabinet file),一个归档文件(.cab)可以包含许多文件,常用于将组件打包到一个单个的文件中,这个文件可以放到web服务器上,通过浏览器下载归档文件。该模板可以压缩归档文件的大小。 ● 合并模块项目:该模板用于创建一个合成模块,类似于归档文件,可以用于一组文件打包,它们的合并文件被存放在.msi模块文件中,自身不能包含安装的文件。 ● 安装项目:该模板用于为应用程序创建一个标准的Windows Installer安装程序,如果要开发安装在计算机的Program Files目录下的标准Windows应用程序,则可以使用该模板。 ● Web安装项目:该模板用于创建一个Windows Installer安装程序,创建的安装程序可以用来把这个工程安装到某个Web服务器的虚拟目录上,主要用于为Web应用程序创建安装软件包。 安装项目的目的和实际应用环境决定了所选取的安装模板,对于“房地产管理系统”我们使用“安装项目”模板来生成安装程序。下面来具体介绍如何创建安装和部署项目。具体步骤如下: (1) 选择“文件”|“添加”|“新建项目”命令,弹出如图13-45所示的窗体。 图13-45 添加项目 (2) 在“项目类型”中选择“其他项目类型”节点,然后单击“安装和部署”选项。在“模板”中选择“安装项目”选项,命名为BuildingSaleSetup,如图13-46所示。 (3) 单击“确定”按钮,该项目被添加到解决方案中,同时在主窗体中打开,如图13-47所示。 图13-46 安装项目 图13-47 新建BuildingSaleSetup项目 (4) 如果“目标计算机的文件系统”中没有包含“用户桌面”和“用户的‘程序’菜单”这两个文件夹,右击,弹出“文件系统编辑器”菜单,如图13-48所示,在该菜单中选择这两个文件夹。 (5) 在“解决方案资源管理器”窗体中选中BuildingSaleSetup选项,在右下方的“属性”窗体中修改项目属性,如表13-1所示。未列出的属性采用默认属性。 图13-48 添加文件夹菜单 表13-1 BuildingSaleSetup属性 属 性 值 属 性 值 Author ItBook productName 房地产管理系统 Title 房地产管理系统 SupportPhone 010-86543497 SupportUrl www.itbook.com (6) “属性”窗体设置属性完毕之后,在“解决方案资源管理器”窗体中右击BuildingSaleSetup选项,从弹出的快捷菜单中选择“属性”命令,弹出如图13-49所示的窗体。 图13-49 BuildingSaleSetup属性页 (7) 在“BuildingSaleSetup属性页”中单击“系统必备”按钮,弹出如图13-50所示的对话框。 图13-50 系统必备对话框 因为Visual Basic 2005是建立在.NET Framework 2.0基础上的,如果安装本项目的系统上没有安装.NET Framework 2.0,则本项目不能在该系统上运行,因此在“系统必备”选项中选中.NET Framework 2.0复选框。如果用户的机器上没有安装.NET Framework 2.0,可以推荐用户从微软网站上去下载。 (8) 在系统主窗体中,单击“目标计算机上的文件系统”中的“应用程序文件夹”,在右下方的“属性”窗体中可以设置它的属性。这里设置它的DefaultLocation属性为[ProgramFilesFolder] \[ProductName],这表示本项目的默认安装位置为Program Files文件夹中的“房地产管理系统”文件夹。 (9) 为了给BuildingSaleSetup添加项目输出,右击“应用程序文件夹”,选择“添加项目输出”命令,弹出窗口如图13-51所示。 这个窗口允许从当前解决方案中的任意一个项目中输出。一旦选择了恰当的项目,就可以选择输出类型。“主输出”添加了由项目引用生成的程序集,以及一些从属的程序集,这是通常的选项。这里要安装部署的是BuildingSale项目,因此在下拉列表框中选择BuildingSale,然后在列表框中选择“主输出”选项,最后单击“确定”按钮关闭该窗口。 (10) 在主窗体的右半部分,右击“主输出来自BuildingSale(活动)”节点,在弹出的菜单中选择“主输出来自BuildingSale (活动) 的快捷方式”命令,创建主输出(一般为应用程序的exe文件)的快捷方式。然后“剪切”该快捷方式,把它粘贴到 “用户的程序菜单”文件夹中,并修改该快捷方式的名字为BuildingSale。用同样的方式在“用户桌面”文件夹中生成快捷方式。 (11) 在解决方案资源管理器中,右击“BuildingSaleSetup”项目,在弹出的菜单中选择“视图”|“用户界面”命令,弹出“用户界面编辑器”,如图13-52所示。 图13-51 添加输出 图13-52 用户界面编辑器 (12) 单击“安装”节点的“欢迎使用”子节点,在该节点属性窗体的WelcomeText属性中输入“欢迎使用图书馆管理系统。”。 至此,安装和部署项目的选项已经基本设置完毕,读者可能发现数据库还没有被添加到项目中。这是因为在安装程序中添加数据库比较复杂,将把这部分单独作为一小节进行介绍。 13.3.2 添加数据库 对于SQL Server数据库,有以下两种选择在安装程序中添加数据库: (1) 先备份数据库,然后把备份文件添加到应用程序中,用户安装应用程序完毕之后需要还原数据库。 (2) 不备份数据库而把数据库的数据文件和日志文件分离出来,然后把分离出来的文件添加到应用程序中,用户安装应用程序完毕之后需要附加数据文件和日志文件到指定的数据库中。 这里采用备份/还原的方式,把数据库的备份文件BuildingSaleDB.bak添加到安装程序中。步骤如下: (1) 切换到“文件系统”视图。 (2) 右击“应用程序”文件夹,在弹出的上下文菜单中选择“添加|文件”命令,弹出选择文件对话框,如图13-53所示。 图13-53 选择文件 (3) 选择BuildingSaleDB.bak文件,单击“确定”按钮,完成添加数据库文件的操作。 至此,生成“房地产管理系统”安装程序的基本设置就介绍完了,单击“生成”|“生成BuildingSaleSetup”菜单,生成该安装程序,一般包含一个BuildingSaleSetup.msi文件和一个setup.exe文件。 13.3.3 安装“房地产管理系统”程序 在安装项目BuildingSaleSetup的文件夹可以找到BuildingSaleSetup.msi文件和setup.exe文件,双击setup.exe文件即可在本机或其他计算机上安装“房地产管理系统”。步骤如下: (1) 双击setup.exe文件,弹出安装向导窗口,如图13-54所示。 图13-54 安装向导 (2) 单击“下一步”按钮,弹出如图13-55所示的对话框。 图13-55 选择安装文件夹 (3) 选择好目录后,单击“下一步”按钮,出现“确认安装”对话框,如图13-56所示。 图13-56 确认安装对话框 (4) 单击“下一步”按钮,出现“安装进度”对话框,如图13-57所示。 图13-57 安装进度 (5) 安装完毕后,弹出“安装完成”对话框,如图13-58所示。 图13-58 安装完成 (6) 单击“关闭”按钮,完成安装。此时可以在“控制面板”的“添加或删除程序”面板中看到该程序,如图13-59所示。 单击“单击此处获得支持信息”链接,弹出如图13-60所示的窗体,读者可以发现,这里的支持信息就是在属性设置时设置的属性值。 图13-59 添加或删除程序 图13-60 支持信息 程序安装完毕,即可正常使用了,关于如何使用该程序前面已经详细地介绍过,这里就不再重复了。 13.4 Web程序的打包和发布 本节我们以“在线考试系统”为例来介绍Web程序的安装和发布。对于Web程序的安装项目,一般用来在本机或局域网的虚拟目录中安装网站。在广域网特别是Internet上上传网站时,一般直接把程序中的.aspx网页传到网上,而不会把安装程序传给网络管理员,由他来安装程序。 13.4.1 生成Web安装项目 前面已经介绍过Windows应用程序的安装和部署,我们知道安装和部署项目时有4种模板,其中“安装项目”和“Web安装项目”之间的区别在于安装程序的部署位置: ● 对于“安装项目”,安装程序将文件安装到目标计算机上的Program Files目录中。 ● 对于“Web安装项目”,安装程序将文件安装到Web服务器上的Virtual Root目录中。 需要注意的是,项目一旦创建,其类型就无法在Web与标准之间更改。如果已经创建一个标准部署项目,而后决定将其部署到Web,则需要创建一个新项目。 创建Web程序的安装和部署步骤如下: (1) 选择“文件”|“添加”|“新建项目”命令,弹出如图13-61所示的对话框。 图13-61 添加项目 (2) 在“项目类型”中选择“其他项目类型”节点,然后单击“安装和部署”选项。在“模板”中选择“Web安装项目”选项,命名为ExaminationOnlineSetup,“解决方案”选项选择“添加解决方案”,如图13-62所示。 图13-62 Web安装项目 (3) 单击“确定”按钮,该项目被添加到解决方案中,同时在主窗体中打开,如图13-63所示。 图13-63 新建ExaminationOnlineSetup项目 在“解决方案资源管理器”窗体中选中ExaminationOnlineSetup选项,在右下方的“属性”窗体中修改项目属性,如表13-2所示,未列出的属性采用默认属性。 表13-2 ExaminationOnlineSetup属性 属 性 值 属 性 值 Author ItBook productName 在线考试系统 Title 在线考试系统 SupportPhone 010-865432789 SupportUrl www.itbook.com Description 在线考试 “属性”窗体设置属性完毕之后,在“解决方案资源管理器”窗体中右击ExaminationOnlineSetup选项,从弹出的快捷菜单中选择“属性”命令,弹出属性窗口。在属性窗口中设置“系统必备”选项,这部分内容在前面已经介绍过,这里不再重复了。 (4) 右击“Web应用程序文件夹”,在弹出的快捷菜单中选择“添加”|“添加项目输出”命令,弹出如图13-64所示的对话框。 (5) 单击“确定”按钮,返回到ExaminationOnlineSetup设计界面。 (6) 本项目我们使用的是SQL Server数据库系统,所以还需要把数据库的数据文件和日志文件添加到安装程序中。这样,用户安装完毕程序后,可以通过“附加数据库”操作把ExaminationOnlineDB数据库的数据文件和日志文件添加到Web服务器的SQL Server服务器上。添加文件的步骤如下:右击“Web应用程序文件夹”,在弹出的快捷菜单中选择“添加”|“添加文件”命令把数据库的数据文件ExaminationOnline_data.mdf和日志文件ExaminationOnline_log.log添加到项目中。 (7) 选择“生成”|“生成ExaminationOnlineSetup”命令,生成该安装程序。 13.4.2 安装Web项目 生成安装程序后,就可以在本机或其他计算机上安装了。这里以在本地计算机上安装为例,根据生成安装程序时指定的目录找到生成的安装程序,该安装程序一般包括两个文件:ExaminationOnlineSetup.msi和setup.exe。双击setup.exe,开始安装程序。关于如何安装程序,读者应该很熟悉,这里就不再介绍了。 安装时全部采用默认安装,安装完毕后,因为是在本机上安装的,所以就不需要再安装数据库了,使用设计时的数据库即可。如果读者在其他计算机上安装,还需要把数据文件ExaminationOnline_data.mdf和日志文件ExaminationOnline_log.log附加到Web服务器的SQL Server数据库服务器上。 程序安装完毕之后,可以在“控制面板”的“添加或删除程序”面板中看到该程序。读者打开“控制面板”|“添加和删除程序”,可以看到刚才安装的项目,如图13-65所示。 单击“单击此处获得支持信息”链接,弹出如图13-66所示的窗体,读者可以发现,这里的支持信息就是我们在属性设置时设置的属性值。 图13-65 已安装的程序 图13-66 支持信息 此外,ExaminationOnlineSetup程序还把ExaminationOnlineSetup网站发布到“默认网站”中。打开“Internet信息服务”窗体,可以在“默认网站”中看到该网站,如图13-67所示。 图13-67 IIS服务器 读者打开IE,输入以下地址:http://localhost/ExaminationOnlineSetup/Main.aspx,出现网络书店的主页,标志着该Web程序安装成功。 440 473