第8 章 部署应用程序

上传人:cn****1 文档编号:572010182 上传时间:2024-08-12 格式:PDF 页数:9 大小:378.13KB
返回 下载 相关 举报
第8 章 部署应用程序_第1页
第1页 / 共9页
第8 章 部署应用程序_第2页
第2页 / 共9页
第8 章 部署应用程序_第3页
第3页 / 共9页
第8 章 部署应用程序_第4页
第4页 / 共9页
第8 章 部署应用程序_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《第8 章 部署应用程序》由会员分享,可在线阅读,更多相关《第8 章 部署应用程序(9页珍藏版)》请在金锄头文库上搜索。

1、第 8 章 部署应用程序 应用程序:使用应用程序:使用 ClickOnce 进行用户启动的更新进行用户启动的更新 此应用程序演示如何使用 ClickOnce 应用程序编程接口 (API) 向 Windows 窗体应用程序添加用户启动的更新功能。 新概念新概念 在在 Visual Studio 2005 中,有三个可选的主要部署选项:Web、ClickOnce 和 Windows Installer 包。使用 MS-DOS XCopy 命令将应用程序文件从一个地方移动到另一个地方是另一种选项,它仍然是最简单、最直接的部署方法。它也最不灵活,实际上只适用于几种情况 例如,当更新 Web 应用程序(

2、即使它应该只适合于不需要更新 IIS 元数据库的部署)或用于安装私有 .NET 程序集的情况。 ClickOnce 是 Visual Studio 2005 中引入的一种集成部署技术,允许从 Web 服务器安装和运行 Windows 应用程序,而几乎没有与用户进行交互。作为 Microsoft Windows Server 2003、Windows XP、Windows 2000 和 Windows Me 附带的一部分,Windows Installer 是一项安装和配置服务(作为单独的下载内容,它还可用于 Windows 9x 和 Windows NT 4.0)。您将发现,在 Visual

3、Studio 2005 中构建于 Windows Installer 基础上的部署工具为提供了丰富的功能,可以快速部署和更新应用程序。 背景背景 组成组成 ClickOnce 的服务集合体现了这些技术的发展,.NET Framework 的第一版中开始出现一种称为非接触部署(No-Touch) 的技术。在 .NET Framework 1.0 版发布时,它马上就解决了开发人员面临的许多问题。在 .NET Framework 上构建的托管应用程序得益于应用程序隔离和低影响部署(也称为 XCopy 部署)。通过提供一种共享组件和对组件进行版本控制的新方法,.NET Framework 1.0 还更

4、正了“DLL Hell”问题(即安装将破坏现有的软件,并有可能破坏将来的软件安装)。消除了 DLL 的版本问题,也就为思考部署 Windows 桌面应用程序的新方法打开了一扇大门,与基于 Web 的应用程序相比,Windows 桌面应用程序可以提供更多的功能,并且可以提供更丰富的用户体验。 非接触部署作为一种基于 Web 的部署方法而出现,它允许安装 Internet Explorer 5.01 或更高版本的用户从某个 URL 下载和安装 Windows 桌面应用程序,并在其本地计算机上运行它们,而无需运行通常的 Setup.exe。该部署机制还称为“href-exes”,它将桌面应用程序的丰

5、富功能与 Web 应用程序部署的简单性结合起来。 遗憾的是,直接从 Web 位置运行应用程序也存在局限性。首先,由 Web 页启动的应用程序仅在联机时可用,因此受网络连接的影响,这是由它们的本质决定的。href-exes 的另一个重要问题是其安全性问题。应用程序要运行,更有可能要求更改客户端上的默认安全策略。在 Visual Studio 的早期版本中,开发人员在设计时几乎不可能确定应用程序所需的权限。毫无疑问,许多非接触部署被不可预见的安全限制“巨石”所击碎,使得这些部署不能用于生产中。非接触部署的另一个局限性是,它没有提供管理版本发布的标准机制。 ClickOnce 可以保护用户的计算机和

6、应用程序。当 ClickOnce 下载和安装程序时,它不会更改自身文件以外的任何文件。可以设置更新策略,并利用 .NET Framework 版本控制机制来管理更新。在本节中,您将看到一个应用程序,它阐释如何使用 ClickOnce 部署 API 允许用户自动更新 Windows 桌面应用程序。 但在研究该实现的细节之前, 我们来回顾一下 ClickOnce 的新功能,以及在必须从中选择的部署功能的范围内,它如何适合于 Visual Studio 2005。您还将详细了解到,以声明方式实现 ClickOnce 部署和自动更新是多么简单。 注注当我们讨论 ClickOnce 的安全性时,您将会更

7、详细地了解到,Visual Studio 2005 IDE 中提供的工具使得无需推测计算和配置分布式 Web 胖客户端应用程序的安全需求。这是朝实现非接触部署的早期承诺迈进的一大步。 代码访问安全性代码访问安全性 代码访问安全性代码访问安全性 (CAS) 是公共语言运行库 (CLR) 的一种功能, 它基于代码的标识执行安全性。 作为一名开发人员, 您可能并没有将使用 CAS 作为日常事务的一部分,因为保证代码安全的基础结构内置于 .NET Framework 库中。然而,为了做出关于应用程序安全需求的正确决策,了解 CAS 非常必要 特别是 .NET Framework 如何处理证据、权限和代

8、码组。同样非常重要的是,在开发项目的生命周期中,通常是在早期解决安全问题。详尽地讨论 CAS 超出了本书的范围。要了解更多信息,请访问 MSDN Web 站点(请参见 http:/ , 该站点包含许多有关常见安全问题的文章, 特别是有关 CAS 的文章; 也可以阅读专门论述 .NET Framework 安全性的书籍, 例如 Writing Secure Code, 2nd Edition, by Michael Howard and David LeBlanc (Microsoft Press, 2003) 或 .NET Framework Security, by Brian A. LaM

9、acchia, et al. (Addison-Wesley, 2002)。 ClickOnce 的优点的优点 ClickOnce 构建于此前的早期计划的基础上,旨在于解决许多与其他部署方法相关的障碍。 自动自动/自助服务更新自助服务更新 非接触部署引入桌面应用程序基于 Web 的安装。 ClickOnce 扩展了这种功能, 提供一种自动更新应用程序或允许用户根据自己的判断来更新应用程序的机制。无需用户重新安装整个应用程序也可以应用更新。 独立应用程序独立应用程序为了避免有时发生与使用共享组件的应用程序相关的版本冲突,ClickOnce 将应用程序部署为一个独立的实体,该实体不会影响其他应用程

10、序。即,通过 ClickOnce 安装的应用程序不会被以后的应用程序安装破坏。 非管理员安装非管理员安装只有具有管理员权限时才能运行 Windows Installer 应用程序。具有较低权限的帐户可以安装 ClickOnce 应用程序,而且只授予它们运行该应用程序所需的权限。 脱机访问脱机访问通过 ClickOnce 部署的应用程序可以安装为联机运行或本地运行。在后一种情况中,它们与 Windows Shell 集成在一起,包括为应用程序添加一个“Start”菜单快捷方式。这样就可以随时随地访问 Web 部署的应用程序。 注注对于 .NET Framework 的 1.0 和 1.1 版本,

11、Microsoft 为.NET提供了更新应用程序块,作为进一步扩展非接触部署优点的一种方法。该应用程序块由 Microsoft 模式与实践小组开发和发布,可以从 MSDN 免费下载,它包含文档和自定义 .NET 程序集(带有源代码),供开发人员为应用程序添加自助更新功能。(请参见 http:/ 在资金、时间和精力方面,ClickOnce 部署也提供了非常高的成本效益。设想一下,这些节约下来的投入肯定能对应用程序设计中的关键决策点产生影响:由于需要一种方式来轻松地将应用程序提供给广大用户,并需要能够快速而简单地更新该应用程序,您已经多少次将解决方案构建为基于 Web 的应用程序?如果您是一名在托

12、管网络环境中工作的开发人员,那么您将面临网络管理员带来的其他障碍 他们不愿意或不会支持部署更新,而该部署更新又要求在网络上的每个客户端系统中运行安装程序。 说到底,将解决方案构建为基于 Web 的应用程序是最顺畅的方式,这有几个很充分的理由。虽然牺牲了高级功能和丰富的用户界面,但部署和更新 Web 应用程序将更容易、更经济且更为轻松。ClickOnce 使得不需要在功能和容易部署之间进行折衷,因为它为胖客户端应用程序提供了简单和可靠的 Web 应用程序部署方式。 所有这些都表明,基于 Web 的应用程序将不会过时。它们仍可以为需要在各种操作系统上运行的解决方案提供无所不及的功能。对于完全功能的

13、客户端安装,Windows Installer 包依然是最佳选择。但是,在许多情况下,开发人员现在有望将胖客户端应用程序提供给用户,而无需面对部署约束,而在过去,这些约束使得这种部署方式成为一种不切实际的选择。 作为其核心,ClickOnce 是内置于 .NET CLR 中的一组新部署功能。这些功能包括一个可编程的界面,以及集成在 Visual Studio 2005 IDE 中的设计时支持。此外,还可以将 ClickOnce 部署功能直接内置于应用程序本身中,而不需要构建一个单独的安装程序。 发布发布 ClickOnce 应用程序应用程序 ClickOnce 技术集成在 Visual Stu

14、dio 2005 IDE 中的两个主要部分。第一部分是“Build”菜单,它包含一个“Publish”菜单项。同样的命令在解决方案资源管理器中的解决方案和项目上下文菜单中也可用。Visual Studio 2005 IDE 中的第三个发布选项使用命令按钮,该命令按钮在项目设计器的“Publish”窗格中可用。(这表示 Visual Studio 2005 IDE 与 ClickOnce 集成的第二个主要部分。)选择“Publish”菜单命令(或单击“Publish”窗格中的“Publish Wizard”按钮)将启动“Publish Wizard”(如图 8-1 所示),这种工具可指导您完成发

15、布所需的步骤。 图图 8-1 发布向导。 发布向导的第一页要求选择应用程序的位置。该向导的其他步骤同样允许更改其他部署设置(例如,安装模式和用户安装应用程序的方式,以及选择签名应用程序和部署清单所需的公钥发布向导的第一页要求选择应用程序的位置。该向导的其他步骤同样允许更改其他部署设置(例如,安装模式和用户安装应用程序的方式,以及选择签名应用程序和部署清单所需的公钥/私钥)。如果需要更改,请单击“Next”按钮,使向导前进一步。完成更新设置后,单击“Finish”。 注注部署清单是一个描述 ClickOnce 应用程序部署的 XML 文件,包括部署的当前版本、更新配置设置,以及最重要的 Clic

16、kOnce 应用程序的应用程序清单的当前版本。 注注应用程序清单是一个标识利用 ClickOnce 部署的应用程序的 XML 文件,包括标识应用程序的主要程序集、它的安全需求、应用程序使用的非程序集文件列表,以及应用程序运行所需的任何依赖项。 当首次发布应用程序时,Visual Studio 2005 在名为 publish 的解决方案中创建一个新文件夹,并将安装应用程序所需的文件存储在该目录中,包括部署清单和包含应用程序先决条件的引导程序。它还生成一个带有指向程序安装和先决条件的链接的 Web 页。如果将某个 Web 站点指定为发布的位置, ClickOnce 发布引擎就在目标 Web 服务

17、器上创建一个虚拟目录, 并将文件从本地发布文件夹复制到该位置。 最后, ClickOnce 在 Web 浏览器中打开一个发布页,如图 8-2 所示。 图图 8-2 发布页。 安装和运行安装和运行 ClickOnce 应用程序应用程序 如果部署应用程序是为了脱机使用(这是默认的安装模式),单击应用程序链接就可以开始在用户的计算机上安装应用程序。如果将应用程序配置为只可联机使用,那么将直接从发布页启动它。图如果部署应用程序是为了脱机使用(这是默认的安装模式),单击应用程序链接就可以开始在用户的计算机上安装应用程序。如果将应用程序配置为只可联机使用,那么将直接从发布页启动它。图 8-3 显示当尝试安

18、装应用程序时接收到的安全确认消息。 图图 8-3 安装确认对话框。 用户单击用户单击“Install”按钮后,应用程序就安装在用户计算机上的一个本地文件夹中。安装成功后,ClickOnce 子系统会自动从本地安装目录运行此应用程序。 更新更新 ClickOnce 应用程序应用程序 将更新传递给应用程序的过程与发布应用程序原始版本的过程相同。发布更新之前唯一要做的事情就是增加应用程序的版本号。可以自动或手动增加发布版本号。默认情况下,将发布版本设置为每次发布应用程序就自动增加修订号。但是,如图将更新传递给应用程序的过程与发布应用程序原始版本的过程相同。发布更新之前唯一要做的事情就是增加应用程序的

19、版本号。可以自动或手动增加发布版本号。默认情况下,将发布版本设置为每次发布应用程序就自动增加修订号。但是,如图 8-4 所示,可以清除“Automatically Increment Revision With Each Release”复选框来手动设置该值。 图图 8-4 发布版本。 发布版本和应用程序程序集的版本号完全无关,注意到这一点非常重要。如果将应用程序配置为每次发布自动增加版本号,那么对于发布发布版本和应用程序程序集的版本号完全无关,注意到这一点非常重要。如果将应用程序配置为每次发布自动增加版本号,那么对于发布 ClickOnce 应用程序的新版本而言,最容易的方法是单击项目设计器

20、中“Publish”窗格中的“Publish Now”按钮。发布子系统编译更新的应用程序,并将程序集和与其相关的应用程序清单存储在发布位置的一个新文件夹中。它还更新部署清单以指向新的应用程序清单。下次用户打开应用程序时(并假定将应用程序配置为检查更新),用户计算机上的 ClickOnce 运行时会发现新版本,然后通知用户更新可用或自动安装更新。 图 8-5 显示了一个典型的更新通知对话框。在该示例中,可以选择安装应用程序的更新版本或跳过更新。在 ClickOnce 应用程序的更新配置设置中,可以控制用户是否可以选择拒绝更新。 图图 8-5 更新通知。 为了更好地理解 ClickOnce 应用程

21、序如何获知应用程序的更新可用时间,可以研究图 8-6 所示的文件和文件夹。该图阐释一种典型的更新情况,即存储在 WeatherReport_1.0.0.0 文件夹中的应用程序的原始版本已经由存储在 WeatherReport_1.0.0.1 文件夹中的更新的版本进行更新。 图图 8-6 已发布的应用程序文件。 部署清单(图部署清单(图 8-6 中所示的 WeatherReport.application 文件)包含一个应用程序最新版本的条目。当应用程序检查更新时,ClickOnce 查看部署清单,并将其与应用程序的当前版本进行比较。如果可用版本比应用程序的当前版本更新,则 ClickOnce

22、或者显示一条提示消息来通知用户更新可用,或者自动更新应用程序,这取决于您如何配置更新应用程序设置。 图 8-7 阐释这个过程。服务器包含应用程序原始版本和更新版本 (1.0.0.1) 的应用程序文件。部署清单显示,应用程序有一个更新的版本可用。当已安装的应用程序执行更新检查时,它将阅读部署清单,并了解是否有一个更新可用。 配置配置 ClickOnce 属性属性 虽然默认的 ClickOnce 设置在有些情况下是适合的,但您需要熟悉项目设计器的“Publish”窗格,以控制不同的部署方案。“Publish”窗格中的设置允许您配置高级部署选项,配置各种更新方案,为 ClickOnce 应用程序添加

23、先决条件,并管理在应用程序清单中如何处理应用程序自身中包含的文件。 注注有关 Visual Studio 2005 项目设计器的详细信息,请参阅第 3 章“Visual Studio 2005 集成开发环境”。 图图 8-8 项目设计器的“Publish”窗格。 Deployment Manifest Version = 1.0.0.1 Application Version = 1.0.0.0 Application .0.0.0 Application .0.0.1 发布位置发布位置 发布位置可以是一个 Web 站点、FTP 站点、文件共享或指向磁盘的路径。如果旨在将应用程序分布在可移动的

24、介质(例如 CD),则选择磁盘路径是一种合适的选择。在目标 Web 服务器没有配置为使用 Microsoft Front Page 服务器扩展(发布到 Web 站点要求这样做)的情况下,使用网络文件共享或 ftp 服务器作为发布位置是一个不错的选择。 如果安装 URL 不同于发布位置,则在“Publish”窗格的“Installation URL”文本框中指定该地址。例如,如果发布到一个内部 Web 站点,而且该应用程序是供 Internet 用户使用的,那么这将是指定外部地址的地方。需要指定单独安装 URL 的另一种情况是:发布位置是一个文件共享或 ftp 服务器。 通过在“Publish”窗格包含的“Documentation And Support URL”文本框中设置 URL,还可以包含对以下二者的引用:应用程序的基于 Web 的帮助或其他支持文档。如果为该属性输入地址,那么它将作为发布应用程序时生成的发布页上的一个链接出现。 安装模式安装模式 安装模式将部署定义为安装模式将部署定义为已安装应用程序或已启动应用程序。表 8-1 总结每种选项的主要特点。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号