打包概述

打包定义应用如何安装、更新和与 Windows 集成。 WinUI 应用默认打包,而许多桌面应用(如传统 Win32 应用程序)则运行未打包。 打包的应用受益于全新安装模型、自动更新和对需要包标识的 Windows 功能的访问权限,包括后台任务、通知、上下文菜单扩展和其他扩展点。 解压缩的应用仍可访问许多 Windows 应用 SDK 功能,但可能需要其他设置才能启用某些功能。

应用打包为何重要

打包确定应用如何安装、更新、标识和与 Windows 集成。 在 打包解压缩 的应用之间进行选择会影响可以使用的功能、你依赖的部署模型以及客户获得的整体体验。 本概述的目的是帮助你快速了解权衡,以便你可以选择最符合应用体系结构和要求的模型。

打包的应用与未打包的应用

打包的应用

打包的应用使用 MSIX 并具有 包标识,这是许多 Windows 扩展点所必需的,包括后台任务、通知、自定义上下文菜单扩展和共享目标。 包标识允许 Windows 可靠地标识平台 API 的调用方,这就是为什么这些功能依赖于它的原因。 有关详细信息,请参阅 需要包标识的功能

与外部位置一起打包

某些现有桌面应用尚未准备好使其所有内容都位于 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 打包和部署应用。

其他安装技术

还可使用其他安装技术打包和部署这些类型的应用。