C#中windows的clickonce部署.doc

上传人:豆**** 文档编号:33472028 上传时间:2022-08-11 格式:DOC 页数:37 大小:1.30MB
返回 下载 相关 举报
C#中windows的clickonce部署.doc_第1页
第1页 / 共37页
C#中windows的clickonce部署.doc_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《C#中windows的clickonce部署.doc》由会员分享,可在线阅读,更多相关《C#中windows的clickonce部署.doc(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-作者xxxx-日期xxxxC#中windows的clickonce部署【精品文档】应用程序:使用 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)。您将发现,在 Visu

3、al 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 的安全性时,您将会更详细地了解到,Vi

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

8、早期解决安全问题。详尽地讨论 CAS 超出了本书的范围。要了解更多信息,请访问 MSDN Web 站点(请参见 ),该站点包含许多有关常见安全问题的文章,特别是有关 CAS 的文章;也可以阅读专门论述 .NET Framework 安全性的书籍,例如 Writing Secure Code, 2nd Edition, by Michael Howard and David LeBlanc (Microsoft Press, 2003) 或 .NET Framework Security, by Brian A. LaMacchia, et al. (Addison-Wesley, 2002)。

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

10、indows Installer 应用程序。具有较低权限的帐户可以安装 ClickOnce 应用程序,而且只授予它们运行该应用程序所需的权限。脱机访问通过 ClickOnce 部署的应用程序可以安装为联机运行或本地运行。在后一种情况中,它们与 Windows Shell 集成在一起,包括为应用程序添加一个“Start”菜单快捷方式。这样就可以随时随地访问 Web 部署的应用程序。注更新应用程序块,作为进一步扩展非接触部署优点的一种方法。该应用程序块由 Microsoft 模式与实践小组开发和发布,可以从 MSDN 免费下载,它包含文档和自定义 .NET 程序集(带有源代码),供开发人员为应用程

11、序添加自助更新功能。(请参见 。)在资金、时间和精力方面,ClickOnce 部署也提供了非常高的成本效益。设想一下,这些节约下来的投入肯定能对应用程序设计中的关键决策点产生影响:由于需要一种方式来轻松地将应用程序提供给广大用户,并需要能够快速而简单地更新该应用程序,您已经多少次将解决方案构建为基于 Web 的应用程序?如果您是一名在托管网络环境中工作的开发人员,那么您将面临网络管理员带来的其他障碍 他们不愿意或不会支持部署更新,而该部署更新又要求在网络上的每个客户端系统中运行安装程序。说到底,将解决方案构建为基于 Web 的应用程序是最顺畅的方式,这有几个很充分的理由。虽然牺牲了高级功能和丰

12、富的用户界面,但部署和更新 Web 应用程序将更容易、更经济且更为轻松。ClickOnce 使得不需要在功能和容易部署之间进行折衷,因为它为胖客户端应用程序提供了简单和可靠的 Web 应用程序部署方式。所有这些都表明,基于 Web 的应用程序将不会过时。它们仍可以为需要在各种操作系统上运行的解决方案提供无所不及的功能。对于完全功能的客户端安装,Windows Installer 包依然是最佳选择。但是,在许多情况下,开发人员现在有望将胖客户端应用程序提供给用户,而无需面对部署约束,而在过去,这些约束使得这种部署方式成为一种不切实际的选择。作为其核心,ClickOnce 是内置于 .NET CL

13、R 中的一组新部署功能。这些功能包括一个可编程的界面,以及集成在 Visual Studio 2005 IDE 中的设计时支持。此外,还可以将 ClickOnce 部署功能直接内置于应用程序本身中,而不需要构建一个单独的安装程序。发布 ClickOnce 应用程序ClickOnce 技术集成在 Visual Studio 2005 IDE 中的两个主要部分。第一部分是“Build”菜单,它包含一个“Publish”菜单项。同样的命令在解决方案资源管理器中的解决方案和项目上下文菜单中也可用。Visual Studio 2005 IDE 中的第三个发布选项使用命令按钮,该命令按钮在项目设计器的“P

14、ublish”窗格中可用。(这表示 Visual Studio 2005 IDE 与 ClickOnce 集成的第二个主要部分。)选择“Publish”菜单命令(或单击“Publish”窗格中的“Publish Wizard”按钮)将启动“Publish Wizard”(如图 8-1 所示),这种工具可指导您完成发布所需的步骤。图 8-1 发布向导。发布向导的第一页要求选择应用程序的位置。该向导的其他步骤同样允许更改其他部署设置(例如,安装模式和用户安装应用程序的方式,以及选择签名应用程序和部署清单所需的公钥/私钥)。如果需要更改,请单击“Next”按钮,使向导前进一步。完成更新设置后,单击“

15、Finish”。注部署清单是一个描述 ClickOnce 应用程序部署的 XML 文件,包括部署的当前版本、更新配置设置,以及最重要的 ClickOnce 应用程序的应用程序清单的当前版本。 注应用程序清单是一个标识利用 ClickOnce 部署的应用程序的 XML 文件,包括标识应用程序的主要程序集、它的安全需求、应用程序使用的非程序集文件列表,以及应用程序运行所需的任何依赖项。当首次发布应用程序时,Visual Studio 2005 在名为 publish 的解决方案中创建一个新文件夹,并将安装应用程序所需的文件存储在该目录中,包括部署清单和包含应用程序先决条件的引导程序。它还生成一个带

16、有指向程序安装和先决条件的链接的 Web 页。如果将某个 Web 站点指定为发布的位置,ClickOnce 发布引擎就在目标 Web 服务器上创建一个虚拟目录,并将文件从本地发布文件夹复制到该位置。最后,ClickOnce 在 Web 浏览器中打开一个发布页,如图 8-2 所示。图 8-2 发布页。安装和运行 ClickOnce 应用程序如果部署应用程序是为了脱机使用(这是默认的安装模式),单击应用程序链接就可以开始在用户的计算机上安装应用程序。如果将应用程序配置为只可联机使用,那么将直接从发布页启动它。图 8-3 显示当尝试安装应用程序时接收到的安全确认消息。图 8-3 安装确认对话框。用户

17、单击“Install”按钮后,应用程序就安装在用户计算机上的一个本地文件夹中。安装成功后,ClickOnce 子系统会自动从本地安装目录运行此应用程序。更新 ClickOnce 应用程序将更新传递给应用程序的过程与发布应用程序原始版本的过程相同。发布更新之前唯一要做的事情就是增加应用程序的版本号。可以自动或手动增加发布版本号。默认情况下,将发布版本设置为每次发布应用程序就自动增加修订号。但是,如图 8-4 所示,可以清除“Automatically Increment Revision With Each Release”复选框来手动设置该值。图 8-4 发布版本。发布版本和应用程序程序集的版

18、本号完全无关,注意到这一点非常重要。如果将应用程序配置为每次发布自动增加版本号,那么对于发布 ClickOnce 应用程序的新版本而言,最容易的方法是单击项目设计器中“Publish”窗格中的“Publish Now”按钮。发布子系统编译更新的应用程序,并将程序集和与其相关的应用程序清单存储在发布位置的一个新文件夹中。它还更新部署清单以指向新的应用程序清单。下次用户打开应用程序时(并假定将应用程序配置为检查更新),用户计算机上的 ClickOnce 运行时会发现新版本,然后通知用户更新可用或自动安装更新。图 8-5 显示了一个典型的更新通知对话框。在该示例中,可以选择安装应用程序的更新版本或跳

19、过更新。在 ClickOnce 应用程序的更新配置设置中,可以控制用户是否可以选择拒绝更新。图 8-5 更新通知。为了更好地理解 ClickOnce 应用程序如何获知应用程序的更新可用时间,可以研究图 8-6 所示的文件和文件夹。该图阐释一种典型的更新情况,即存储在 WeatherReport_1.0.0.0 文件夹中的应用程序的原始版本已经由存储在 WeatherReport_1.0.0.1 文件夹中的更新的版本进行更新。图 8-6 已发布的应用程序文件。部署清单(图 8-6 中所示的WeatherReport.application 文件)包含一个应用程序最新版本的条目。当应用程序检查更新

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

21、同的部署方案。“Publish”窗格中的设置允许您配置高级部署选项,配置各种更新方案,为 ClickOnce 应用程序添加先决条件,并管理在应用程序清单中如何处理应用程序自身中包含的文件。注有关 Visual Studio 2005 项目设计器的详细信息,请参阅第 3 章“Visual Studio 2005 集成开发环境”。图 8-8 项目设计器的“Publish”窗格。Deployment ManifestApplicationApplicationApplication发布位置发布位置可以是一个 Web 站点、FTP 站点、文件共享或指向磁盘的路径。如果旨在将应用程序分布在可移动的介质(

22、例如 CD),则选择磁盘路径是一种合适的选择。在目标 Web 服务器没有配置为使用 Microsoft Front Page 服务器扩展(发布到 Web 站点要求这样做)的情况下,使用网络文件共享或 ftp 服务器作为发布位置是一个不错的选择。如果安装 URL 不同于发布位置,则在“Publish”窗格的“Installation URL”文本框中指定该地址。例如,如果发布到一个内部 Web 站点,而且该应用程序是供 Internet 用户使用的,那么这将是指定外部地址的地方。需要指定单独安装 URL 的另一种情况是:发布位置是一个文件共享或 ftp 服务器。通过在“Publish”窗格包含的

23、“Documentation And Support URL”文本框中设置 URL,还可以包含对以下二者的引用:应用程序的基于 Web 的帮助或其他支持文档。如果为该属性输入地址,那么它将作为发布应用程序时生成的发布页上的一个链接出现。安装模式安装模式将部署定义为已安装应用程序或已启动应用程序。表 8-1 总结每种选项的主要特点。表 8-1 安装模式选项已安装已启动从 Web、CD/DVD 或网络共享进行安装直接从 Web 或网络共享运行Shell 集成(“Start”菜单出现时,添加到“Add or Remove Programs”的条目)没有 shell 集成脱机可用 仅联机可用各种应用程

24、序更新策略始终运行最新版本的应用程序。ClickOnce 安装的应用程序与按照传统方式安装的 Windows 应用程序具有相同的基本属性。ClickOnce 将程序快捷方式添加到“Start”菜单,而应用程序出现在本地的“Add or Remove Programs”小程序中,因此,它可以像其他程序一样卸载,也可以回滚到以前的版本。可以在发布向导或项目设计器的“Publish”窗格中设置安装模式。在“Publish”窗格中,标题为“Install Mode And Settings”的部分包括两个选项。选择其中一个选项:应用程序只能联机使用应用程序也可以脱机使用注对版本回滚的支持仅限于 Cli

25、ckOnce 应用程序以前的一个版本。ClickOnce 启动的应用程序从其发布的 Web 页执行。这使其“感觉”更像 href-exe 在“Start”菜单上没有添加 href-exe 的快捷方式,应用程序也未出现在“Add or Remove Programs”中。然而,虽然对于用户而言,以这种方式部署的应用程序好像是从源 Web 位置运行的,但它们实际上以与 Web 页缓存相似的方式在本机上缓存,两者的目标同样都是降低网络流量以提高应用程序的性能。这种类型的应用程序缓存起初是随非接触部署引入的,其中的可执行应用程序下载到本地计算机的程序集下载缓存中。发布选项“Publish”窗格的“In

26、stall Mode And Settings”部分包括 4 个按钮控件,用于访问操作其他发布属性的对话框。如果单击最底端的按钮“Options”,将打开“Publish Options”对话框,如图 8-9 所示。图 8-9 “Publish Options”对话框。发布语言Publish Language 属性控制 ClickOnce 应用程序安装过程中显示的用户界面项的语言。如果该属性设置为 Default,则安装使用用户计算机上的区域与语言设置。如果正在发布本地化版本的 ClickOnce 应用程序,那么将该属性更改为与应用程序本地化设置相匹配的语言和区域。开始菜单名称如上所述,本地安

27、装的应用程序具有 Windows 外壳程序集成,它会出现在“Start”菜单上。可以在“Start Menu Shortcut Resource Name”文本框中为应用程序指定出现在“Start”菜单项中的名称。如果该属性保留为空白,ClickOnce 将使用基础应用程序程序集的标题。发布页当发布第一版的 ClickOnce 应用程序时,发布引擎创建一个名为 publish.htm. 的 HTML 页。该页显示了 ClickOnce 应用程序的名称、安装应用程序的链接、所有先决条件(如果指定)或支持的文档,以及指向 MSDN ClickOnce 帮助主题的链接。作为发布过程的一部分,该页与

28、ClickOnce 应用程序文件一起复制到发布位置。如果发布后续版本的应用程序,将不改写发布页面。这意味着在发布该页面后,可以利用任何 HTML 编辑器自定义页面,而无需担心以后丢失这些更改。“Publish Options”对话框允许更改发布页的默认名称 publish.htm。发布后通过清除“Automatically Open This Page On Publishing”复选框,还可以禁止在 Web 浏览器中打开该页面。部署策略票证如果计划在托管网络中部署应用程序(例如,如果您是一位在 Intranet 上部署应用程序的公司开发人员),那么可以使用 ClickOnce 进行所谓的可信

29、应用程序部署,它描述一种用于安全而可靠地部署应用程序的模型,要求高级别的信任而不必提示用户。通过将 ClickOnce 部署策略发布到将特定应用程序发布者定义为可信任的客户端,组织内的系统管理可以启用这种类型的部署。(这些发布者也称为信任颁发者。)一旦安装了这一策略,由这些发行商之一签署的任何 ClickOnce 应用程序都可以接收更高级别的信任。注可信应用程序部署对于非托管网络的部署不可行。相反,必须使用“权限提升”,本章的“ClickOnce 安全性”一节将对此进行详细讨论。作为应用程序开发人员,需要执行下列两个基本步骤来利用该安全模型:1.从组织的信任许可证颁发商处获得信任许可证文件 (

30、.tlic),并将其添加到您的项目中。2.将 ClickOnce 应用程序的 Deployment Policy Ticket 属性设置为信任许可证文件。将信任许可证文件添加到项目后,可以使用“Publish Options”对话框选择 Deployment Policy Ticket 属性。许可证文件将出现在对话框提供的下拉列表中。注有关安全策略管理和创建信任许可证的详细讨论超出了本书的范围。有关这些主题的详细信息,请参见 MSDN 技术资源库中有关 Visual Studio 2005 的内容。确定应用程序更新需求在部署第 1 版应用程序之前,应仔细考虑更新需求,因为在发布版本 2 时,您

31、所做的选择将会起作用。例如,如果将第 1 版的 ClickOnce 应用程序配置为应用程序运行时在后台检查更新,那么,当准备版本 2 的应用程序时,决定要在应用程序启动之前检查更新,则这种更改将直到版本 2 成功安装后才可应用。或者提出 “我需要用户始终拥有最新版本的应用程序吗?” 这样的问题,考虑如何处理通用的更新方案。根据特定应用程序针对此问题的回答,可以选择一种能够灵活提供更新的更新策略,或使用一种更加严格的方法,以确保用户始终拥有最新版本的应用程序。默认情况下,当应用程序运行时,ClickOnce 应用程序在后台查找更新。如果更新实际可用,那么下次用户运行该应用程序时,将出现一个提示询

32、问她是否安装此更新。这是一个相当灵活的更新方法的示例,因为在发现更新后,用户继续使用该应用程序。可以将这种行为更改为在应用程序启动之前检查更新。在这种情况下,当更新可用时,在应用程序运行之前 将出现更新提示。这种方法仍然允许用户控制是否安装更新,但至少在应用程序运行之前使其有机会进行决策。 配置自动更新选项尽管在某些情况下,提示用户这一功能运行良好,但在强制更新的情况下,会出现其他问题。一个显而易见的的例子就是,如果应用程序将数据发送给服务器,之后在服务器端更改了数据模型;而过时的客户端就有向服务器发送错误数据的风险。可以通过将应用程序配置为自动更新来解决这个问题,如以下步骤所述:1.单击项目

33、设计器“Publish”窗格的“Updates”按钮。这将打开“Application Updates”对话框,如图 8-10 所示。2.选中“Application Should Check For Updates”复选框。3.要选择应用程序应该何时检查更新,可以选择“Before The Application Starts”。4.清除“Allow The Users To Choose Whether To Accept The Update”复选框。图 8-10 “Applications Updates”对话框。注请记住,配置应用程序更新仅对于本地安装的 ClickOnce 应用程序

34、是必需的。如果将应用程序配置为联机启动,则更新就定义为自动提供(即,其工作方式与 Web 页更新的方式完全相同)。设置更新检查间隔除非为其他配置,否则支持 ClickOnce 的应用程序在每次运行时都要检查更新。可以将这种行为更改为指定的时间间隔 例如,每两周一次。如果应用程序不要求用户立即接收最新的应用程序更新,那么这就是一个明智的选择。如果还需要实现用户启动的更新以允许用户检查应用程序本身是否有更新,那么将自动更新检查设置为较长的时间间隔是一种不错的选择。(稍后在本章的“演练”一节中,将看到如何实现用户启动的更新检查。)考虑带宽ClickOnce 应用程序使用的网络连接的质量是确定检查更新

35、策略时应当考虑的一个因素。如果网络的带宽较高,那么在应用程序启动之前检查更新比较适合。另一方面,如果网络很慢,这会导致应用程序加载非常慢。在这种情况下(如果用户能够接受临时使用应用程序的过时版本),一种较好的选择是在应用程序运行时检查更新,以允许 .NET Framework 在后台线程中执行更新检查。应用程序先决条件在 ClickOnce 应用程序运行之前,要求在计算机上安装 .NET Framework 的正确版本。另外,和标准的安装程序一样,ClickOnce 应用程序可能需要其他的软件组件。例如,如果应用程序使用最新版本的 Microsoft 数据访问组件 (MDAC) 或 Micro

36、soft DirectX,那么可以将它们作为单独的安装程序包含在 ClickOnce 部署中,并与 ClickOnce 应用程序一起发布。提供应用程序先决条件的单独安装程序通常称为引导。引导程序具有以下主要功能:它是只安装目标机上所需组件的轻量级安装程序。它支持标准安装 EXE 和 Windows Installer 安装包(.msi 文件)。它支持自动重新启动和恢复。可以很容易地将可重新发布的包添加到可用先决条件列表中。引导程序将 ClickOnce 和更紧凑的软件安装联系起来。引导程序在企业设置中也是有用的,其中各种不同的应用程序共享内部构建的 .NET 组件,并需要将这些组件安装在全局程

37、序集缓存 (GAC) 中。因为 ClickOnce 应用程序文件只能安装到本地应用程序缓存,所以发往 GAC 的程序集必须利用添加到应用程序先决条件的 Windows Installer 安装包(.msi 文件)来安装。需要牢记的是:引导程序要求 Full Trust 权限。您的用户将需要管理权限来安装包含在引导程序中的组件,而与 ClickOnce 应用程序本身指定的安全级别无关。要配置哪些安装组件包括在引导程序中,可以使用“Prerequisites”对话框,它提供一组可用的可重新发布包。(请参见图 8-11。)默认情况下,Microsoft .NET Framework 2.0 可重新发

38、行包 (Dotnetfx.exe) 是预先选择的。这是一个引导程序实用工具,如果它没有出现在用户的计算机上,则可自动下载并安装 .NET Framework。对话框允许您选择从与应用程序(默认的)相同的位置处下载先决条件,或者指定另一个下载位置。如果组织使用一组共同的先决条件,并且希望在部署服务器上保留磁盘空间,此外还要确保每个应用程序接收相同版本的先决条件,那么使用不同的位置是一个不错的选择。注先决条件是可扩展的 可以将您自己的 Windows Installer .msi 文件或其他第三方可重新发布包添加到引导程序中。有关详细信息,请参阅 MSDN 技术资源库中有关 Visual Stud

39、io 2005 的文章“How to:Add Your Own Prerequisites to a ClickOnce Application”。图 8-11 “Prerequisites”对话框。当发布应用程序时,先决条件被捆绑到引导程序的安装程序中。最终的发布 Web 页包含用于安装 ClickOnce 应用程序和引导程序的单独链接。警告先决条件不能使用 ClickOnce 的自动更新功能进行更新。只有应用程序本身才可进行更新。应用程序文件发布一个 ClickOnce 应用程序时,项目中的所有文件与应用程序一起发布。在有些情况下,项目可能包含开发所需的文件,但您不想将它们包含在部署中。在

40、其他情况下,您可能想指定某些文件只能根据可控条件进行安装,从而使应用程序的性能和安装时间达到最佳的程度。使用“Publish”窗格中的“Application Files”对话框,可以排除文件,将文件标记为数据文件或先决条件,并创建当应用程序需要时才下载的文件组。图 8-12 说明如何使用“Application Files”对话框来对必需的和可选的文件进行分组。位于列表顶部的文件 (OnDemand.exe) 确定为应用程序的入口点,而且是部署所需的组件。应用程序图标文件 (App.ico) 也归类为必需项。但将程序集 OrderListControl.dll 和 OrderLibary.d

41、ll 分配到名为“OnDemand”的组。这些文件在应用程序清单中将标记为可选,并且在首次使用应用程序时不进行安装。注.ApplicationDeployment类的 DownloadFiles方法或 DownloadFilesAsync方法来安装所需的文件。有关更多信息,请参阅 Visual Studio 2005 文档中的“Walkthrough:Downloading Assemblies On Demand with the ClickOnce Deployment API”主题。图 8-12 “Application Files”对话框。首次打开“Application File”对

42、话框时,类型列将所有的文件显示为应用程序文件(.dll 文件除外),这些文件都作为应用程序程序集列出。如图 8-12 所示,可以更改某些文件的类型。对话框下拉列表中可用的类型选项会根据相关文件类型的变化而变化。例如,可以将 .dll 文件指定为 Application Assembly 或 Prerequisite。(不能显式地排除它们。)另一方面,可将文本文件标记为 Application File、Data File 或 Excluded。“Application File”对话框的第三列列出应用程序的文件组。最初,列出的唯一组是 Required。如果需要标识那些应当包含在部署但只在某些

43、条件下下载(即可选安装)的文件,那么应当创建额外的文件组并为它们分配文件。要添加新组,请遵循以下步骤:1.在“Application File”对话框中,选择希望包含在新组中的文件。2.单击“Group”字段下的下拉列表并选择“New”。这会显示一个“New Group”对话框。这样,为您产生一个新组名,可将“Application File”对话框列表中的其他文件分配到新组。ClickOnce 安全性在还没有过多考虑将 ClickOnce 用作部署胖客户端应用程序的新方法之前,您可能已经开始关心对于安全性而言,其意味所在。ClickOnce 提供一个用于完全功能桌面应用程序的简化部署模型。这

44、些应用程序可以来自各种不同的源,而且您可能对这些源都有不同程度的信任。(例如,与来自 Internet 的应用程序相比,您可能更信任来自 Intranet 的应用程序。)实际上,ClickOnce 的设计很适合部署非常可靠和安全的应用程序。运行在沙箱中的 ClickOnce 应用程序默认情况下,ClickOnce 应用程序在一个安全的沙箱中执行。根据特定用户计算机上安装的 .NET 安全策略和 ClickOnce 应用程序的安装或运行位置来确定沙箱。表 8-2 列出基于发布位置的 ClickOnce 应用程序的默认权限。表 8-2 发布位置的安全区域发布位置安全区域从 Internet Web

45、 站点启动Internet 区域从 Internet Web 站点安装Internet 区域从 Intranet Web 站点安装Intranet 区域从网络文件共享进行安装Intranet 区域从 CD-ROM 进行安装全部.NET Framework 中的默认安全策略具有很高的限制性。在默认的 Internet 区域下运行的应用程序只引用了一些限制,例如,不能访问本机文件资源,不能连接到数据库,并且不能与外部 Web 资源进行通信。事实上,在部署 ClickOnce 应用程序之前,需要确定应用程序为完成工作需要什么样的代码访问安全性 (CAS) 权限。然后,在安装时需要配置应用程序以请求这

46、些权限。配置 ClickOnce 代码访问安全性Visual Studio 2005 IDE 项目设计器的“Security”窗格提供一个配置 ClickOnce 应用程序权限的界面。如果它在 Internet 上部署,它就具有默认的 Internet 安全权限。如果在 Intranet 中部署,它就具有 Local Intranet 权限。如果通过其他方式部署,它就具有 Full Trust 权限。正如前一节描述的,可以使用默认的权限部署 ClickOnce 应用程序,在这种情况下,不需要在“Security”窗格中进行任何更改。在 Internet 或 Intranet 部署方案中,默认的

47、权限可能太受限制。相反,使用 Full Trust 权限部署的应用程序可以进行无限制的系统访问。但是,不论哪种情况,最佳做法是,应用程序应当只包含它实际运行所需的权限。为了帮助您实现这个目标,“Security”窗格提供一个自定义 ClickOnce 安全设置的界面,如图 8-13 所示。图 8-13 项目设计器的“Security”窗格。在开始为 ClickOnce 自定义安全设置之前,需要选中“Enable ClickOnce Security Settings”复选框。这会激活“Security”窗格中一组与安全相关的控件。通过选择四个应用程序安装区域之一,开始自定义过程:Local C

48、omputer (Full Trust)、Local Intranet、Internet 和 Custom。因为自定义安全设置的目标是定义运行应用程序所需的最低权限,所以可以选择与应用程序所需权限最匹配的区域,并将该区域作为权限集的起点。然后,在“Security”窗格中提供的权限表中,通过启用或禁用所需的单个权限来进一步更改权限集。要更改表中某个特定的权限,可以滚动到其中列出该权限的行。Setting 列包含一个下拉列表,并有三个选项:Include、Exclude 和 Zone Default。选择 Include 可以添加权限,选择 Exclude 可以移除权限。选择 Zone Default 可以将权限重新设置为所选区域的默认状态。图 8-14 阐释手动配置权限的示例。虽然包含 FileIOPe

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com