排查使用应用安装程序文件遇到的安装问题

如果在从应用安装程序文件安装应用程序时发现任何问题,本主题将提供一些可能有所帮助的故障排除指南。

先决条件

若要能够在 Windows 10 中旁加载应用,用户设备必须满足以下要求:

Windows 10:

  • 用于对包进行签名的证书必须由设备信任。 有关更多详细信息,请参阅下面的 “受信任的证书 ”部分。
  • Windows 10 版本必须支持 .appinstaller 文件架构和分发协议。

Windows 10 1909 及更早版本:

  • 必须为设备启用开发人员模式或旁加载应用。 有关详细信息,请参阅启用设备进行开发

常见问题

首次在用户计算机中旁加载应用程序时,存在一些常见问题。 接下来的几个部分介绍了最常见的问题及其解决方案。

Windows 版本

每个 Windows 10 版本都改进了旁加载体验,下表中展示了每个主要版本中都有哪些功能可用。 如果你尝试使用 Windows 10 版本中不支持的方法旁加载应用,则会出现部署错误。

版本 旁加载说明
版本 17134(2018 年 4 月更新,版本 1803) 可以通过 UNC/共享文件夹访问.appinstaller文件。 可配置的更新检查也可用。
内部版本 16299(Fall Creators Update 版本 1709) 引入了 .appinstaller 该文件以向应用提供自动更新。 此版本仅支持 HTTP 终结点。 更新检查不可配置,每 24 小时进行一次。
内部版本 15063(Creators Update 版本 1703) 应用安装程序应用可以从应用商店下载应用依赖项(仅在发布模式下)。
内部版本 14393(周年更新版本 1607) 引入了应用安装程序应用以安装.appx和 .appxbundle 文件,不支持 .appinstaller 文件。
版本 10586 (11 月更新, 版本 1511) 旁加载只能通过 PowerShell 的 Add-AppxPackage 命令实现。
内部版本 10240(Windows 10 版本 1507) 旁加载只能通过 PowerShell 的 Add-AppxPackage 命令实现。

受信任的证书

应用包必须使用设备信任的证书进行签名。 默认情况下,常见的证书颁发机构提供的证书在 Windows作系统中受信任。

但是,如果用于对应用包进行签名的证书不受信任,或者是开发期间使用的本地生成的/自签名证书,则应用安装程序可能会报告该包不受信任,并会阻止其安装:

MSIX 已使用缺失或不受信任的证书进行签名

若要解决此问题,具有设备本地管理员权限的用户必须使用 计算机证书 工具将证书导入以下容器之一:

  1. 本地计算机:受信任人员
  2. 本地计算机:受信任的根颁发机构(不建议)

重要

不要将包签名证书导入到用户证书存储中。 验证包标识时,应用安装程序不会搜索用户证书。

通过从“开始”菜单进行搜索,可以轻松找到计算机证书管理工具:

通过“开始”菜单查找本地计算机证书工具

成功导入签名证书后,重新运行应用安装程序将显示包受信任且可安装:

使用受信任证书签名的 MSIX

未安装依赖项

Windows 10 应用程序可以基于用于生成应用的应用程序平台具有框架依赖项。 如果使用 C# 或 VB,应用将需要 .NET 运行时和 .NET 框架包。 C++应用程序需要 VCLibs。

重要

如果应用包是在发布模式配置中生成的,则框架依赖项将从 Microsoft 应用商店获取。 但是,如果应用是在调试模式配置中生成的,则会从文件中指定的 .appinstaller 位置获取依赖项。

文件不可访问

从 HTTP 终结点安装时,请务必验证是否可访问所有必需的文件。 验证此方法的最简单方法是遵循 Visual Studio 生成的 HTML 页面中提供的链接。 必须检查这些文件:

  • 在 Visual Studio 生成的页面上的 .appinstaller 位置找到一个 Additional Links > App Installer File 文件
  • .appx.appxbundle.misxmsixbundle文件,位于Visual Studio生成的页面Additional Links > Package Bundle

注释

根据您的配置,部署中可能涉及多个.appx.appxbundle.misxmsixbundle文件。 确保所有项均可访问。

使用错误的 MIME 类型提供的文件

从 HTTP 终结点进行安装时,Web 服务器必须在 标头中为所有文件配置Content-Type

无 Content-Length 标头时提供的文件

从 HTTP 终结点安装时,所有响应都需要包含正确的 Content-Length 标头。 其中包括 GET 以及 HEAD 请求。 确保所有这些项都正确指定其 Content-Length。 未能这样做可能会导致类似 App installation failed with error message: Appinstaller operation failed with error code 0x80072F76. Detail: Unknown error (0x80072f76) 或其他错误。

应用安装失败,出现错误消息:参数不正确

由于目前不支持虚荣 URL,因此在使用 ms-appinstaller 协议时,源参数必须以结尾 .appinstaller。 是否重定向到以.appinstaller结尾的文件并不重要。 这也将以同样的方式失败。 解决此问题的唯一方法是确保原始 URL 以 .appinstaller结尾。

隔离应用安装程序问题

如果应用安装程序无法安装应用,这些步骤将帮助确定安装问题。

验证应用包文件安装

  • 将应用包文件下载到本地文件夹,并尝试使用 Add-AppxPackage PowerShell 命令进行安装。

  • .appinstaller 文件下载到本地文件夹,并尝试使用 Add-AppxPackage -Appinstaller PowerShell 命令进行安装。

应用安装程序事件日志

应用部署基础结构发出日志,这些日志通常用于通过 Windows 事件查看器调试安装问题: Application and Services Logs -> Microsoft -> Windows -> AppxDeployment-Server 在此文件夹中创建了其他日志文件: %LocalAppData%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir