应用程序部署先决条件 (Windows 桌面)

若要成功安装和运行 Windows 桌面应用程序,必须将应用程序依赖的组件安装到目标计算机上。 本文概述了安装 ClickOnce 和 Windows Installer 安装程序 项目所需的组件。

可以选择所需的组件(称为先决条件),例如 .NET Framework 和安装过程中的任何其他可再发行组件。 安装必备组件的过程称为 引导。 Visual Studio 生成名为 Setup.exe的 Windows 可执行程序,也称为 引导程序。 引导程序负责在应用程序运行之前安装这些先决条件。 有关选择这些先决条件的详细信息,请参阅 先决条件对话框

引导程序包 是一组目录和文件,其中包含描述如何安装先决条件的清单文件。 先决条件对话框中显示的每个先决条件 都是引导程序包。 如果应用程序先决条件未列在 先决条件对话框中,则可以创建自定义引导程序包并将其添加到 Visual Studio。 然后,可以在“先决条件”对话框中选择先决条件。 有关详细信息,请参阅 创建引导程序包

默认情况下,为 Windows Installer 部署(在 Visual Studio 中使用安装程序项目)和 ClickOnce 部署启用引导。 为 Windows Installer 部署生成的引导程序未签名,但在 ClickOnce 部署中,引导程序已签名。 可以禁用组件的引导安装,但仅当确定已在所有目标计算机上安装正确的组件版本时,才应该这样做。

启动和 ClickOnce 部署

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

  • 公共语言运行时的最低必需版本,该版本在应用程序清单中指定为程序集依赖项。

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

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

    ClickOnce 可以检测缺少的先决条件,可以使用引导程序安装必备组件。 有关详细信息,请参阅 如何:使用 ClickOnce 应用程序安装必备组件

注意

若要更改由 Visual Studio 和 MageUI.exe等工具生成的清单中的值,需要在文本编辑器中编辑应用程序清单,然后重新对应用程序和部署清单进行签名。 有关详细信息,请参阅 如何:重新对应用程序和部署清单进行签名。

如果使用 Visual Studio 和 ClickOnce 部署应用程序,则默认情况下选择的引导程序包取决于解决方案中的 .NET Framework 版本。 但是,如果更改目标 .NET Framework 版本,则必须手动更新 先决条件对话框中的选项

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

如果使用 ClickOnce 发布向导或 Visual Studio 中的发布页面生成引导程序,则会自动对 Setup.exe 进行签名。 但是,如果要使用客户的证书对引导程序进行签名,则可以稍后对文件进行签名。

启动和 MSBuild

如果不使用 Visual Studio,而是在命令行上编译应用程序,则可以使用Microsoft生成引擎(MSBuild)任务创建 ClickOnce 引导应用程序。 有关详细信息,请参阅 GenerateBootstrapper 任务

作为引导程序的替代方法,可以通过电子软件分发系统(如Microsoft系统管理服务器(SMS))来预部署组件。

Bootstrapper (Setup.exe) 命令行参数

Visual Studio 和 MSBuild 任务生成的 Setup.exe 支持以下命令行参数集。 任何其他参数将转发到应用程序安装程序。

如果更改任何引导程序选项,则必须更改未签名的引导程序,然后对引导程序文件进行签名。

命令行参数 描述
-?, - h,-help 显示“帮助”对话框。
-url、-componentsurl 显示此设置的存储 URL 和组件网址。
-url=location 设置 Setup.exe 查找 ClickOnce 应用程序的 URL 地址。
-componentsurl=location 设置 Setup.exe 查找依赖项的 URL,例如 .NET Framework。
-homesite=true|false true从供应商站点上的首选位置下载依赖项。 此设置将替代 -componentsurl 设置。 在 false时,从 -componentsurl指定的 URL 下载依赖项。

操作系统支持

Windows Server 2008 Server Core 或 Windows Server 2008 R2 Server Core 不支持 Visual Studio 引导程序,因为它们提供功能有限的低维护服务器环境。 例如,Server Core 安装选项仅支持 .NET Framework 3.5 Server Core 配置文件,该配置文件无法运行依赖于完整 .NET Framework 的 Visual Studio 功能。