部署 WPF 应用程序
生成 Windows Presentation Foundation (WPF) 应用程序后,需要部署它们。 Windows 和 .NET Framework 包括多种部署技术。 用于部署 WPF 应用程序的部署技术取决于应用程序类型。 本主题简要概述了每个部署技术,以及它们如何与每个 WPF 应用程序类型的部署要求结合使用。
部署技术
Windows 和 .NET Framework 包括多种部署技术,包括:
XCopy 部署。
Windows Installer 部署。
ClickOnce 部署。
XCopy 部署
XCopy 部署是指使用 XCopy 命令行程序将文件从一个位置复制到另一个位置。 XCopy 部署适用于以下情况:
应用程序是独立运行的。 它不需要更新客户端才能运行。
必须将应用程序文件从一个位置移动到另一个位置,例如从生成位置(本地磁盘、UNC 文件共享等)移动到发布位置(网站、UNC 文件共享等)。
应用程序不需要 shell 集成(“开始”菜单快捷方式、桌面图标等)。
尽管 XCopy 适用于简单的部署方案,但当需要更复杂的部署功能时,它受到限制。 具体而言,使用 XCopy 通常会产生由于创建、执行和维护脚本以有效且可靠地管理部署而带来的额外开销。 此外,XCopy 不支持版本控制、卸载或回滚。
Windows 安装程序
Windows Installer 允许应用程序打包为可轻松地分发到客户端并运行的自包含可执行文件。 此外,Windows Installer 随 Windows 一起安装,并支持与桌面、“开始”菜单和“程序”控制面板集成。
Windows Installer 简化了应用程序的安装和卸载,但它不会提供相应工具以确保已安装的应用程序始终为最新版本。
有关 Windows Installer 的详细信息,请参阅 Windows Installer 部署。
ClickOnce 部署
ClickOnce 使非 Web 应用程序能够以 Web 风格进行部署。 应用程序在 Web 或文件服务器中发布和部署。 尽管 ClickOnce 不支持 Windows Installer 安装的应用程序提供的各种客户端功能,但它确实支持包含以下部分的子集:
与“开始”菜单和“程序”控制面板集成。
版本控制、回滚和卸载。
联机安装模式,该模式始终从部署位置启动应用程序。
新版本发布时自动更新。
文件扩展名的注册。
有关 ClickOnce 的详细信息,请参阅 ClickOnce 安全和部署。
部署 WPF 应用程序
WPF 应用程序的部署选项取决于应用程序的类型。 从部署的角度来看,WPF 有三种重要的应用程序类型:
独立应用程序。
纯标记的 XAML 应用程序。
XAML 浏览器应用程序(XBAP)。
部署独立应用程序
独立应用程序是使用 ClickOnce 或 Windows Installer 部署的。 无论哪种方式,独立应用程序都需要完全信任才能运行。 使用 Windows Installer 部署的独立应用程序会自动获得完全信任。 使用 ClickOnce 部署的独立应用程序不会自动授予完全信任。 相反,ClickOnce 会显示一个安全警告对话框,用户必须在安装独立应用程序之前接受该对话框。 如果接受,独立应用程序就会安装并被授予完全信任状态。 如果没有,说明独立应用程序未安装。
部署 Markup-Only XAML 应用程序
仅标记的 XAML 页面通常像 HTML 页面一样发布到 Web 服务器,并可以通过 Internet Explorer 查看。 仅标记 XAML 页面会按照 Internet 区域权限集定义的限制,在部分信任的安全沙箱内运行。 这为基于 HTML 的 Web 应用程序提供等效的安全沙盒。
有关 WPF 应用程序的安全性的详细信息,请参阅 安全。
仅包含标记的 XAML 页面可以通过 XCopy 或 Windows Installer 安装到本地文件系统。 可以使用 Internet Explorer 或 Windows 资源管理器查看这些页面。
有关 XAML 的详细信息,请参阅 WPF中的
部署 XAML 浏览器应用程序
警告
XBAP 要求旧版浏览器运行,例如 Internet Explorer 和旧版 Firefox。 这些较旧的浏览器通常在 Windows 10 和 Windows 11 上不受支持。 由于安全风险,新式浏览器不再支持 XBAP 应用所需的技术。 不再支持启用 XBAP 的插件。 有关详细信息,请参阅 有关 WPF 浏览器托管应用程序(XBAP)的常见问题解答。
XBAP 是编译的应用程序,需要部署以下三个文件:
ApplicationName.exe:可执行程序集应用程序文件。
ApplicationName.xbap:部署清单。
ApplicationName.exe.manifest:应用程序清单。
说明
有关部署和应用程序清单的详细信息,请参阅 生成 WPF 应用程序。
生成 XBAP 时会生成这些文件。 有关详细信息,请参阅 如何:创建新的 WPF 浏览器应用程序项目。 与仅标记的 XAML 页面一样,XBAP 通常发布到 Web 服务器,并通过 Internet Explorer 查看。
可以使用任何部署技术将 XBAP 部署到客户端。 但是,建议使用 ClickOnce,因为它提供以下功能:
发布新版本时自动更新。
适用于在完全信任状态下运行的 XBAP 的提升权限。
默认情况下,ClickOnce 会发布扩展名为 .deploy 的应用程序文件。 这可能会引发问题,但可被禁用。 有关详细信息,请参阅 ClickOnce 部署中的
有关部署 XAML 浏览器应用程序(XBAP)的详细信息,请参阅 WPF XAML 浏览器应用程序概述。
安装 .NET Framework
若要运行 WPF 应用程序,必须在客户端上安装 Microsoft .NET Framework。 当查看 WPF 浏览器托管的应用程序时,Internet Explorer 会自动检测是否随 .NET Framework 一起安装客户端。 如果未安装 .NET Framework,Internet Explorer 会提示用户安装它。
为检测 .NET Framework 是否已安装,Internet Explorer 含有一个引导应用程序,该应用程序会被注册为具有以下扩展名的内容文件的回退多用途 Internet 邮件扩展 (MIME) 处理程序:.xaml、.xps、.xbap 和 .application。 如果导航到这些文件类型,并且客户端上未安装 .NET Framework,引导程序应用程序会请求安装它的权限。 如果未提供权限,则不会安装 .NET Framework 和应用程序。
如果授予权限,Internet Explorer 将使用Microsoft后台智能传输服务(BITS)下载并安装 .NET Framework。 成功安装 .NET Framework 后,在新的浏览器窗口中打开最初请求的文件。
有关详细信息,请参阅 部署 .NET Framework 和应用程序。