应用程序部署必备

更新:2007 年 11 月

若要确保应用程序成功安装和运行,必须先确保应用程序依赖的所有组件都已安装在目标计算机上。例如,用 Visual Studio 创建的大多数应用程序都会依赖 .NET Framework;在安装应用程序前,目标计算机上必须存在正确版本的公共语言运行库。

ClickOnce 的平台检测

在客户端计算机上安装应用程序之前,ClickOnce 会对客户端进行检查,以确保客户端具备应用程序清单中指定的要求。包括:

  • 公共语言运行库的最低要求版本(在应用程序清单中被指定为一个程序集依赖项)。

  • 应用程序要求的 Windows 操作系统的最低要求版本(在应用程序清单中使用 <osVersionInfo> 元素指定)。(请参见 <dependency> 元素(ClickOnce 应用程序)

  • 必须预先安装在全局程序集缓存 (GAC) 中的任何程序集及所有程序集的最低版本(由程序集清单中的程序集依赖项声明指定)。

ClickOnce 可以检测到缺少的系统必备,但无法安装这些系统必备。如果发现缺少这些平台依赖项中的任何一个,ClickOnce 都会停止安装,并向用户显示错误对话框。

h4k032e1.alert_note(zh-cn,VS.90).gif说明:

没有任何工具支持设置清单中的 .NET Framework 及操作系统的特定版本。若要更改由 Visual Studio 和 MageUI.exe 之类的工具生成的默认值,需要在文本编辑器中编辑应用程序清单,然后重新对应用程序和部署清单签名。

用于 ClickOnce 应用程序的引导功能

必须使用单独的可再发行组件包安装缺少的系统必备。使用 Visual Studio 中的部署工具,可以将 .NET Framework 和其他可再发行组件作为安装的一部分进行安装,这种做法称为 bootstrapping。

Visual Studio 包含下列可部署的包:

  • .NET Framework 2.0 版 

  • Microsoft 数据访问组件 (MDAC) 2.8

  • Microsoft Visual J# .NET Framework 可再发行组件包 3.1

  • SQL Server 2005 速成版

  • Windows Installer 2.0

默认情况下,Windows Installer 部署和使用 ClickOnce 的部署都会启用引导。可以对某个组件禁用引导,但是仅当您确保所有目标计算机上都已安装了该组件的正确版本时才应这么做。

使用 Visual Studio 部署 ClickOnce 应用程序时,开发环境会提示是否要将某些可再发行组件(如 .NET Framework)包含为依赖项。如果选择这些选项中的一个或多个,则 Visual Studio 会生成一个名为 Setup.exe(“引导程序”)的 Windows 可执行程序,该程序负责在应用程序运行前安装这些依赖项。该引导程序作为与 ClickOnce 运行时引擎无关的单独进程运行。

使用 ClickOnce 部署时,由 ClickOnce 发布向导生成的 Publish.htm 页指向仅安装应用程序的链接,或同时安装应用程序和被引导组件的链接。

如果不使用 Visual Studio,但是在命令行上编译应用程序,则可以使用 Microsoft Build Engine (MSBuild) 任务创建 ClickOnce 引导应用程序。此生成任务与 Visual Studio 用于生成引导应用程序的任务相同。有关更多信息,请参见 GenerateBootstrapper 任务。有关使用 MSBuild 编译项目的更多信息,请参见 MSBuild 概述

在安装期间,某些 Windows 操作系统的用户可能被提示需要管理权限才能运行可再发行组件 -- 即使这些可再发行组件已经安装。

作为引导的替代方法,您可以使用电子软件分发系统(如 Microsoft Systems Management Server (SMS))预先部署组件。

引导性应用程序 (Setup.exe) 命令行参数

由 Visual Studio 和 MSBuild 任务生成的 Setup.exe 支持下面一小组命令行参数。提供给引导应用程序的其他所有参数都会转发给应用程序安装程序。

  • -?, -h, -help
    显示一个“帮助”对话框。

  • -url, -componentsurl
    显示用于此安装的存储 URL 和 -componentsurl

  • **-url=**location
    设置 Setup.exe 将在其中查找 ClickOnce 应用程序的 URL。

  • **-componentsurl=**location
    设置 Setup.exe 将在其中查找依赖项(如 .NET Framework)的 URL。

  • **-homesite=true|**false
    如果为 true,则从供应商站点上的首选位置下载依赖项。这会重写 -componentsurl 设置。如果为 false,则从 -componentsurl 所指定的 URL 下载依赖项。

请参见

概念

选择 ClickOnce 部署策略

ClickOnce 部署概述

MSBuild 概述