部署 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 往往会导致创建、执行并维护能以可靠方式管理部署的脚本,并进而产生相应的开销。 此外,XCopy 不支持版本控制、卸载或回滚。
Windows Installer
Windows Installer 允许应用程序打包为可轻松分发到客户端并运行的自包含可执行文件。 此外,Windows Installer 会随 Windows 一起安装,并能与桌面、“开始”菜单及“程序”控制面板集成。
Windows Installer 简化了应用程序的安装和卸载,但它不会提供相应工具以确保已安装的应用程序始终为最新版本。
有关 Windows Installer 的详细信息,请参阅 Windows Installer 部署。
ClickOnce 部署
ClickOnce 能够针对非 Web 应用程序进行 Web 样式应用程序部署。 应用程序会发布到 Web 或文件服务器,也会从 Web 或文件服务器进行部署。 尽管 ClickOnce 不支持 Windows Installer 安装的应用程序所支持的所有客户端功能,但它支持其中的部分功能,包括:
与“开始”菜单及“程序”控制面板集成。
版本控制、回滚和卸载。
联机安装模式,该模式始终会从部署位置启动应用程序。
当有新版本发布时自动更新。
注册文件扩展名。
有关 ClickOnce 的详细信息,请参阅 ClickOnce 安全和部署。
部署 WPF 应用程序
适用于 WPF 应用程序的部署选项取决于应用程序的类型。 从部署的角度来看,WPF 共有三种重要的应用程序类型:
独立应用程序。
仅标记 XAML 应用程序。
XAML 浏览器应用程序 (XBAP)。
部署独立应用程序
独立应用程序使用 ClickOnce 或 Windows Installer 来部署。 无论使用哪一项,独立应用程序都要在完全信任的状态下才能运行。 使用 Windows Installer 部署的独立应用程序会被自动授予完全信任状态。 使用 ClickOnce 部署的独立应用程序不会被自动授予完全信任状态。 ClickOnce 会转而显示安全警告对话框,用户必须先执行接受操作,然后独立应用程序才会安装。 如果接受,独立应用程序就会安装并被授予完全信任状态。 如果不接受,则独立应用程序不会安装。
部署仅标记 XAML 应用程序
仅标记 XAML 页面通常会发布到 Web 服务器(如 HTML 页面),并可以使用 Internet Explorer 来查看。 仅标记 XAML 页面会按照 Internet 区域权限集定义的限制,在部分信任的安全沙箱内运行。 这样即可提供一个与基于 HTML 的 Web 应用程序一样安全的沙箱。
有关 WPF 应用程序安全性的详细信息,请参阅安全性。
仅标记 XAML 页面可以利用 XCopy 或 Windows Installer 安装到本地文件系统。 这些页面可以使用 Internet Explorer 或 Windows Explorer 资源管理器来查看。
有关 XAML 的详细信息,请参阅 WPF 中的 XAML。
部署 XAML 浏览器应用程序
警告
XBAP 需要旧版浏览器(例如 Internet Explorer 和旧版 Firefox)才能运行。 Windows 10 和 Windows 11 通常不支持这些较旧的浏览器。 由于安全风险,新式浏览器不再支持 XBAP 应用所需的技术。 不再支持启用 XBAP 的插件。 有关详细信息,请参阅有关 WPF 浏览器托管应用程序 (XBAP) 的常见问题解答。
XBAP 是需要部署以下三个文件的编译型应用程序:
应用程序名称.exe:可执行的程序集应用程序文件。
应用程序名称.xbap:部署清单。
应用程序名称.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 和应用程序。