部署概述

本部分的主题介绍有关部署不同类型 Windows 应用的指导。

打包应用的优点和缺点

首先需要决定是否要对应用进行打包。

  • 打包的应用。 只有打包的应用在运行时具有程序包标识符。 许多 Windows 扩展性功能—包括后台任务、通知、动态磁贴、自定义上下文菜单扩展和共享目标都需要程序包标识符。 这是因为,操作系统 (OS) 需要能够识别相应 API 的调用方。 请参阅需要包标识的功能
    • 通常,打包的应用的进程在轻型应用容器中运行,使用文件系统和注册表虚拟化进行隔离。(请参阅适用于旧应用的 AppContainerMSIX AppContainer 应用)。 但你可以将打包应用配置为不在应用容器中运行。
    • 打包的应用是使用 MSIX 技术打包的(请参阅什么是 MSIX?)。
    • 使用外部位置打包的应用。 但是,由于一些现有应用尚未准备好使其所有内容都存在于 MSIX 包中,因此你的应用可以使用外部位置打包。 这使你的应用能够具有程序包标识符;从而能够使用需要它的功能。 有关详细信息,请参阅使用外部位置进行打包以授予程序包标识符
    • 还使用 MSIX安装打包的应用。 但是,如果选择“使用外部位置进行打包”,可以将其视为“自带安装程序”模型。 因此,需要使用该选项执行一些安装程序工作。 它本质上是打包和未打包应用之间的混合选项。
  • 未打包的应用。 可以通过创建未打包的应用来选择完全不使用 MSIX。 但请注意,未打包的应用在运行时没有程序包标识符;所以它缺少某些 Windows 功能(请参阅需要程序包标识符的功能)。

每种类型的应用都可以发布到 Microsoft Store,并以这种方式或通过 Windows 应用安装程序进行安装。

重要

建议将应用打包并将其配置为在应用容器中运行。 它将为客户提供无缝、新式且可靠的安装和更新体验;它在运行时将会是安全的。

已打包((可选)在应用容器中运行) 使用外部位置打包或未打包
优点 为用户提供安装、卸载和更新应用的简便方法。 卸载是干净的,卸载应用后,系统将还原到安装前的相同状态,不会留下任何项目。 这种应用还支持增量更新和自动更新。 此外,Microsoft Store 针对这种应用进行了优化(但这种应用可以在 Microsoft Store 内外使用)。

你可以获得具有程序包标识符的好处。
通过使用这些选项,你的应用在应用类型、可以调用的 API 以及对注册表和文件系统的访问方面不受限制。

使用外部位置打包意味着可以获得具有程序包标识符的好处。
缺点 应用在应用类型以及它在系统中可以拥有的代理方面受到限制。 例如,不能使用 NT 服务。 进程间通信 (IPC) 选项受到限制;如果要发布到 Microsoft Store,则特权/提升访问权限受到限制;文件/注册表访问是虚拟化的(另请参阅灵活的虚拟化)。 在某些情况下,企业策略可以通过禁用 Microsoft Store 来禁用更新。 通过这些选项,应用存在导致过时的配置数据和软件在卸载应用后累积的风险。 对于客户和系统来说,这可能是一个问题。

应用通常会使用 .exe.msi 文件、通过其他安装和更新解决方案,或者使用自定义安装程序、ClickOnce 或 xcopy 部署进行安装和更新。

未打包的应用缺少具有程序包标识符的好处。

有关包安装位置、工作目录以及文件和注册表虚拟化的详细信息,请参阅了解打包的桌面应用如何在 Windows 上运行

使用 Windows 应用 SDK

在决定是否对应用进行打包后,接下来可以决定是否在应用中使用 Windows 应用 SDK。 请参阅 Windows 应用 SDK 部署概述

Win32 和 .NET 桌面应用

如果生成 Win32 桌面应用(有时称为经典桌面应用)或 .NET 应用(包括 Windows Presentation Foundation (WPF) 和 Windows 窗体 (WinForms)),则可以使用 MSIX 打包和部署应用。

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

UWP 应用

UWP 应用是使用 MSIX 打包和部署的。