应用程序部署必备
为确保应用程序成功安装和运行,必须先确保应用程序依赖的所有组件都已安装在目标计算机上。 例如,用 Visual Studio 创建的大多数应用程序都会依赖 .NET Framework;在安装应用程序前,目标计算机上必须存在正确版本的公共语言运行时。
可在**“系统必备组件对话框”**中选择这些系统必备组件,然后在安装过程中安装 .NET Framework 和其他可再发行组件。 此做法称为“引导”。 下一步,Visual Studio 生成名为 Setup.exe 的 Windows 可执行程序,又称为“引导程序”。 引导程序负责在运行应用程序之前,安装这些系统必备组件。 有关选择这些系统必备组件的更多信息,请参见“系统必备”对话框。
每个系统必备组件都是一个引导程序包。 一个引导程序包是一组目录和文件,其中包含用于说明系统必备组件的安装方式的清单文件。 如果应用程序的系统必备组件未列在**“系统必备组件对话框”中,您可以创建自定义引导程序包,将其添加到 Visual Studio, 然后便可在“系统必备组件对话框”**中选择这些系统必备组件。 有关更多信息,请参见创建引导程序包。
默认情况下,Windows Installer 部署(通过使用 Visual Studio 中的安装项目)和 ClickOnce 部署都可以使用引导。 为 Windows Installer 部署生成的引导程序未进行签名,但在 ClickOnce 部署中,将会对引导程序进行签名。 您可以对某个组件禁用引导,但仅当确信所有目标计算机上都已安装该组件的正确版本时,才应这么做。
引导和 Windows Installer 部署
如果您使用 Visual Studio 中的安装项目来部署应用程序,则默认启动条件是 .NET Framework 4 Client Profile,默认选中的引导程序包是 .NET Framework 4 Client Profile 和 Windows Installer 3.1。 如果应用程序以 .NET Framework 的另一版本为目标,则必须在**“系统必备组件对话框”**中更新系统必备组件。 有关更多信息,请参见如何:在 Windows Installer 部署中安装系统必备组件。
如果您是使用 Visual Studio 中的安装项目生成的引导程序,则 Setup.exe 未签名。 但可使用 SignTool.exe 为其签名。 有关更多信息,请参见如何:使用 SignTool.exe 对安装文件进行签名 (Windows Installer)。
引导和 ClickOnce 部署
在客户端计算机上安装应用程序之前,ClickOnce 会对客户端进行检查,以确保客户端具备应用程序清单中指定的要求。 这些要求包括:
公共语言运行时的最低要求版本(在应用程序清单中被指定为一个程序集依赖项)。
应用程序要求的 Windows 操作系统的最低要求版本(在应用程序清单中使用 <osVersionInfo> 元素指定)。 (请参见 <dependency> 元素(ClickOnce 应用程序))
必须预先安装在全局程序集缓存 (GAC) 中的任何程序集及所有程序集的最低版本(由程序集清单中的程序集依赖项声明指定)。
ClickOnce 可以检测到缺少的系统必备组件,并可以使用引导程序安装系统必备组件。有关更多信息,请参见如何:与 ClickOnce 应用程序一起安装系统必备组件。
提示
若要更改由 Visual Studio 和 MageUI.exe 之类的工具生成的清单中的默认值,您需要在文本编辑器中编辑应用程序清单,然后重新对应用程序和部署清单进行签名。 有关更多信息,请参见如何:为应用程序和部署清单重新签名。
如果您使用 Visual Studio 和 ClickOnce 来部署应用程序,则默认选中的引导程序包取决于解决方案中的 .NET Framework 版本。 但如果更改目标 .NET Framework 版本,则必须手动在**“系统必备组件对话框“**中更新选项。
目标 .NET Framework |
选中的引导程序包 |
---|---|
.NET Framework 4 Client Profile |
.NET Framework 4 Client Profile Windows Installer 3.1 |
.NET Framework 4 |
.NET Framework 4 Windows Installer 3.1 |
通过 ClickOnce 部署,ClickOnce 发布向导所生成的 Publish.htm 页指向仅安装应用程序的链接,或同时安装应用程序和引导组件的链接。
如果您是使用 Visual Studio 中的 ClickOnce 发布向导或发布页生成的引导程序,则会自动为 Setup.exe 签名。 但如果您希望使用客户的证书为引导程序签名,则可稍后对文件签名。 有关更多信息,请参见如何:使用 SignTool.exe 对安装文件进行签名 (Windows Installer)。
引导和 MSBuild
如果不使用 Visual Studio,但是在命令行上编译应用程序,则可以使用 Microsoft Build Engine (MSBuild) 任务创建 ClickOnce 引导应用程序。 有关更多信息,请参见 GenerateBootstrapper 任务。
作为引导的替代方法,您可以使用电子软件分发系统(如 Microsoft Systems Management Server (SMS))预先部署组件。
引导程序 (Setup.exe) 命令行参数
由 Visual Studio 和 MSBuild 任务生成的 Setup.exe 支持下面一小组命令行参数。 提供给引导应用程序的其他所有参数都会转发给应用程序安装程序。
如果更改了任何引导程序选项,则必须更改未签名的引导程序,稍后再对引导程序文件进行签名。 有关更多信息,请参见如何:使用 SignTool.exe 对安装文件进行签名 (Windows Installer) 或如何:用 SignTool.exe (ClickOnce) 对安装文件进行签名。
命令行参数 |
说明 |
---|---|
-?, -h, -help |
显示一个“帮助”对话框。 |
-url, -componentsurl |
显示用于此安装的存储 URL 和组件 URL。 |
-url=location |
设置 Setup.exe 将在其中查找 ClickOnce 应用程序的 URL。 |
-componentsurl=location |
设置 Setup.exe 将在其中查找依赖项(如 .NET Framework)的 URL。 |
-homesite=true|false |
如果为 true,则从供应商站点上的首选位置下载依赖项。 这会重写 -componentsurl 设置。 如果为 false,则从 -componentsurl 所指定的 URL 下载依赖项。 |
操作系统支持
Windows Server 2008 服务器核心或 Windows Server 2008 R2 服务器核心提供功能有限的低级维护服务器环境,不支持 Visual Studio 引导程序。 例如,“服务器核心”安装选项仅支持 .NET Framework 3.5 服务器核心配置文件,因此依赖于完整的 .NET Framework 的 Visual Studio 功能无法运行。