打包定义应用如何安装、更新和与 Windows 集成。 WinUI 应用默认打包,而许多桌面应用(如传统 Win32 应用程序)则运行未打包。 打包的应用受益于全新安装模型、自动更新和对需要包标识的 Windows 功能的访问权限,包括后台任务、通知、上下文菜单扩展和其他扩展点。 解压缩的应用仍可访问许多 Windows 应用 SDK 功能,但可能需要其他设置才能启用某些功能。
应用打包为何重要
打包确定应用如何安装、更新、标识和与 Windows 集成。 在 打包 或 解压缩 的应用之间进行选择会影响可以使用的功能、你依赖的部署模型以及客户获得的整体体验。 本概述的目的是帮助你快速了解权衡,以便你可以选择最符合应用体系结构和要求的模型。
打包的应用与未打包的应用
打包的应用
打包的应用使用 MSIX 并具有 包标识,这是许多 Windows 扩展点所必需的,包括后台任务、通知、自定义上下文菜单扩展和共享目标。 包标识允许 Windows 可靠地标识平台 API 的调用方,这就是为什么这些功能依赖于它的原因。 有关详细信息,请参阅 需要包标识的功能。
- 打包的应用通常在具有文件系统和注册表虚拟化的轻型应用容器中运行(请参阅 旧版应用的 AppContainer 和 MSIX AppContainer 应用)。
- 可以根据需要将应用配置为 不 在应用容器中运行。
- MSIX 用于打包和安装(请参阅什么是 MSIX?)。
与外部位置一起打包
某些现有桌面应用尚未准备好使其所有内容都位于 MSIX 包中。 使用外部位置打包 可提供这些应用包标识,同时允许其大部分内容保留在包外部。
- 此选项仍需要安装程序:将其视为打包和解压缩之间的混合模型。
- 请参阅 使用外部位置打包来授予包标识。
未打包的应用
未打包的应用不使用 MSIX, 并且没有包标识,这意味着它们无法访问 需要它的功能。
- 在 API 图面、文件系统访问、注册表访问、提升和进程模型方面,它们仍然完全不受限制。
- 安装和更新依赖于
.exe、.msi、自定义安装程序、ClickOnce 或 xcopy 部署。 - 请参阅需要包标识的功能。
摘要比较
| 打包 (可选应用容器) | 在外部位置打包/未打包 | |
|---|---|---|
| 主要优点 | 现代化的安装/卸载、自动/增量更新、删除时无残留、优化的Microsoft Store体验,以及访问需要包标识的功能。 | 完全控制进程模型、权限提升、IPC、注册表和文件系统访问。 外部位置打包允许获取包标识,而无需完全采用 MSIX。 |
| 关键限制 | 某些系统级方案不受支持(例如 NT 服务)。 IPC 选项可以受到限制,应用商店发布会限制高级访问权限,并且虚拟化适用于很多情况(请参阅 灵活虚拟化)。 企业策略可能会禁用应用商店驱动的更新。 | 卸载后过期文件或配置的风险更高。 必须通过.exe、.msi或自定义机制手动处理安装/更新。 未打包的应用缺少需要包标识的功能。 |
重要
对于大多数应用,使用 MSIX 并在应用容器中运行可提供最无缝、最安全、最现代的安装和更新体验。
有关安装位置、工作目录、虚拟化和运行时行为的更多详细信息,请参阅
了解打包的桌面应用如何在 Windows 上运行。
MSIX 入门
如果生成 Win32 桌面应用(有时称为经典桌面应用)或 .NET 应用(包括 Windows Presentation Foundation (WPF) 和 Windows 窗体 (WinForms)),则可以使用 MSIX 打包和部署应用。
其他安装技术
还可使用其他安装技术打包和部署这些类型的应用。