什么是 MSIX?

已完成

你将帮助 Contoso 确定是否应该使用 MSIX 应用附加技术部署其应用程序。 在研究 MSIX 应用附加技术之前,请首先了解 MSIX、MSIX 打包和 MSIX 打包工具的用途和优点。

MSIX 的用途和优点

MSIX 是 Windows 应用程序包格式,可为所有 Windows 应用程序提供新的打包体验。

你可以将应用程序准备为 MSIX 打包格式,该打包格式使用容器技术来提高应用程序安装和卸载的保真度。 所有 MSIX 应用程序都写入其自己的注册表和应用程序数据文件夹,并且可通过操作系统读取全局注册表。

MSIX 的优点包括:

  • 可预测的安全部署。 MSIX 应用程序使用的容器技术将应用程序与操作系统的其余部分隔离开,以确保安全性。
  • 完全删除。 删除 MSIX 应用程序时,将删除所有应用程序数据。 注册表中或操作系统的文件系统中无剩余数据。
  • 单实例存储。 MSIX 应用附加技术使用一个 MSIX 应用程序实例向所有主机传送,而不占用额外空间。
  • 抗篡改。 当 MSIX 包扩展成 MSIX镜像后,后者为只读并被锁定,以便操作系统进行修改。

提示

通过 MSIX,你可以使用 Microsoft Store 打包并发布 Win32 应用程序。

MSIX 包内包含哪些内容?

以 MSIX 格式打包的应用程序将安装在 c:\Program Files\WindowsApps 文件夹中。 每个包文件夹都包含这些标准化的文件:

文件 说明
应用程序有效负载 包含应用程序代码文件和资产。
AppxBlockMap.xml 包含包内所有文件的已验证和安全列表。
AppxManifest.xml 通过配置与文件的关联来驱动安装,并包含包的 标识和它们的依赖关系。
AppxSignature.p7x 包含操作系统在安装应用程序之前必须信任的包的签名。

提示

若要提取 MSIX 包的内容,将 .msix 文件扩展名更改为 .zip,然后使用文件资源管理器提取文件。

MSIX 容器

以 MSIX 格式准备的应用程序在轻量级容器中运行。 MSIX 应用程序写入其自己的虚拟注册表和应用程序数据文件夹。 所有 MSIX 应用程序流程均在该容器中运行。

创建 MSIX 包

可以使用以下其中一种方法创建 MSIX 包:

  • 重新打包现有 Win32 安装程序
  • 从源代码生成 MSIX

MSIX 打包工具

可使用 MSIX 打包工具从以下任意安装程序创建 MSIX 应用程序包:

  • MSI
  • EXE
  • ClickOnce
  • App-V
  • Script
  • 手动安装

可以从 Microsoft Store 或 Hyper-V 快速启动访问 MSIX 打包工具。

可使用交互式 UI 或命令行将现有包转换为 MSIX 包格式。 运行 MSIX 打包工具之前,需要:

  • 使用受支持的 Windows 10 版本(最低为 1809)。
  • 计算机上没有运行其他服务或应用程序。
  • 准备进行转换的环境,确保该环境类似于托管新创建的 MSIX 包的环境。
  • 确保用于转换的计算机上的架构与部署应用程序的计算机相同。
  • 使用带有检查点的虚拟机,这样你就可以很容易地测试和恢复对包的每一次修改。
  • 了解应用程序的依赖关系,以正确准备 MSIX 包。

注意

从 Windows 10 Fall Creators 更新(Windows 10 的 1709 版本)开始,Microsoft 提供了可用于 MSIX 打包项目的 Hyper-V Quick Create 虚拟环境。

在无其他服务和应用程序运行的计算机上运行 MSIX 打包工具时,系统会提示你在以下三个选项中选择一项:

  • 应用程序包。 选择该选项,则可以通过现有的安装程序或通过手动安装应用程序有效负载来创建 MSIX 包。
  • 修改包。 选择此选项,则可以修改现有 MSIX 包。 此选项可能需要你完成初始打包步骤。
  • 包编辑器。 选择此选项,则无需再次运行安装程序便可更改现有包。 例如,可编辑包的清单。

MSIX 打包工具的屏幕截图。

注意

MSIX 应用附加技术不支持修改包。

在 MSIX 打包工具中,使用以下步骤将应用程序重新打包到 MSIX:

  1. MSIX 打包工具将计算机设置为可使用此工具的状态。 在此步骤中,将安装 MSIX 包驱动程序并禁用 Windows 更新。

  2. 选择你想要打包的安装程序。 此步骤根据你选择要转换的安装程序而有所不同。 此步骤的最后一步是选择以下一个选项对包进行签名:

    • 使用 Device Guard 签名进行签名。
    • 使用证书 (.pfx) 进行签名。
    • 指定一个 .cer 文件。 选择此选项不会对包进行签名,但会匹配将用于签名的证书主题。
  3. 详细说明包信息。 MSIX 打包工具会根据使用的安装程序尝试自动填写应用程序的信息。 你可以根据需要使用自己的值自定义输入。

  4. 运行安装程序。 该工具将开始监视安装阶段并捕获所有安装选项。 如果安装程序需要重启,可以重启计算机并继续转换。

  5. 管理首次运行该工具时确定用户体验的任务。

  6. 查看服务报告。 此步骤适用于在计算机上注册服务的安装人员。 受支持的服务列于“包含的服务”表中。 不支持的服务显示在“不包含的服务”表中。

  7. 创建程序包。 这是该过程的最后一个阶段,你可在此阶段提供 MSIX 包的保存位置。

你可以使用命令行界面自动对应用程序重新打包。 以下示例说明了如何在命令行中使用 MSIX 打包工具:

 MsixPackagingTool.exe create-package --template c:\users\documents\ConversionTemplate.xml -v
 MSIXPackagingTool.exe create-package --template c:\users\documents\ConversionTemplate.xml --virtualMachinePassword pswd112893

注意

您可以在 MSIX 工具包的“脚本”文件夹中找到 PowerShell 和 Bash 脚本示例,这些脚本演示了如何自动打包、签名、管理和分发 MSIX 包的过程。