对 Windows 应用的打包、部署和查询进行故障排除

使用这些建议排查打包、部署或查询Windows应用包 (.msix/.appx) 开发人员时遇到的问题。

注意

本文面向开发人员。 如果你不是开发人员,并且正在寻找有关Windows应用安装错误的帮助,请参阅Windows支持

获取诊断信息

API 失败时,会返回描述问题的错误代码。 如果错误代码未提供足够的信息,可在详细的事件日志中找到更多诊断信息。

若要使用事件查看器访问打包和部署事件日志,请执行以下步骤:

  1. 执行以下步骤之一:

    • Windows菜单上单击"开始"菜单,键入事件查看器然后按 Enter
    • 运行 eventvwr.msc
  2. 在左侧页面中,展开事件查看器 (本地) >应用程序和服务 LogsMicrosoft>>Windows

  3. 检查以下类别下的可用日志:

    • AppxPackagingOM>Microsoft-Windows-AppxPackaging/Operational
    • AppXDeployment-Server>Microsoft-Windows-AppXDeploymentServer/Operational

通过查看 AppXDeployment-Server 下的日志来"开始"菜单。 如果错误是由 0x80073CF0ERROR_INSTALL_OPEN_PACKAGE_FAILED引起的,则 AppxpackagingOM 日志中可能存在其他详细信息。

还可以在 PowerShell 中使用 Get-AppxLog 命令来获取前几个记录的事件。 以下示例显示与最新部署操作关联的日志。

Get-Appxlog

以下示例在单独的窗口中显示与交互式表中最近部署操作关联的日志。

Get-Appxlog | Out-GridView

常见错误代码

下表列出了一些最常见的错误代码。 如果需要有关其中一个错误的进一步帮助,或者遇到不在此列表中的错误代码,请参阅 其他帮助选项

错误代码 说明和可能的原因
E_FILENOTFOUND 0x80070002 未找到文件或路径。 这在 COM typelib 验证期间可能发生,要求目录的路径实际上存在于 MSIX 包中。
ERROR_BAD_FORMAT 0x8007000B 包的格式不正确,需要重新生成或重新签名。
如果签名证书使用者名称和AppxManifest.xml发布者名称不匹配,可能会收到此错误。
请参阅 如何使用 SignTool 对应用包进行签名
E_INVALIDARG 0x80070057 一个或多个参数无效。 如果检查AppXDeployment-Server事件日志并看到以下事件:“安装包时,系统由于以下错误而未能注册 windows.repositoryExtension 扩展:参数不正确。
如果清单元素 DisplayName 或 Description 包含Windows防火墙不允许的字符,可能会收到此错误,因为|Windows无法为包创建 AppContainer 配置文件。 请从清单中删除这些字符,然后尝试安装包。
ERROR_INSTALL_OPEN_
PACKAGE_FAILED
0x80073CF0 无法打开包。
可能的原因:
  • 未对包进行签名。
  • 发布者名称与签名证书使用者不匹配。
  • 缺少 file:// 前缀,或者无法在指定位置找到包。
有关详细信息,请查看 AppxPackagingOM 事件日志。
ERROR_INSTALL_PACKAGE_
NOT_FOUND
0x80073CF1 找不到包。
删除当前用户未安装的包时,可能会收到此错误。
ERROR_INSTALL_INVALID_

0x80073CF2 包数据无效。
ERROR_INSTALL_RESOLVE_
DEPENDENCY_FAILED
0x80073CF3 包未通过更新、依赖关系或冲突验证。
可能的原因:
  • 传入包与已安装的包冲突。
  • 找不到指定的包依赖项。
  • 包不支持正确的处理器体系结构。
有关更多详细信息,请查看 AppXDeployment-Server 事件日志。
ERROR_INSTALL_OUT_
OF_DISK_SPACE
0x80073CF4 计算机上没有足够的磁盘空间。 释放一些空间,然后重试。
ERROR_INSTALL_NETWORK_
失败
0x80073CF5 无法下载包。
ERROR_INSTALL_
REGISTRATION_FAILURE
0x80073CF6 无法注册包。
有关详细信息,请查看 AppXDeployment-Server 事件日志。
ERROR_INSTALL_
DEREGISTRATION_EFAILURE
0x80073CF7 无法注销包。
删除包时可能会收到此错误。
有关详细信息,请查看 AppXDeployment-Server 事件日志。
ERROR_INSTALL_CANCEL 0x80073CF8 用户取消了安装请求。
ERROR_INSTALL_FAILED 0x80073CF9 包安装失败。 请联系软件供应商。
有关详细信息,请查看 AppXDeployment-Server 事件日志。
ERROR_REMOVE_FAILED 0x80073CFA 包删除失败。
对于包卸载期间发生的故障,可能会收到此错误。
有关详细信息,请参阅 RemovePackageAsync
ERROR_PACKAGE_
ALREADY_EXISTS
0x80073CFB 已经安装了提供的包,阻止重新安装此包。
如果安装与已安装的包不按位相同的包,可能会收到此错误。 请注意,数字签名也是包的一部分。 因此,如果重新生成或重新签名包,则它不再与以前安装的包按位相同。 修复此错误的两种可能选项包括: (1) 递增应用的版本号,然后重新生成并辞职包 (2) 在安装新包之前删除系统上每个用户的旧包。
ERROR_NEEDS_REMEDIATION 0x80073CFC 无法启动应用。 尝试重新安装应用。
ERROR_INSTALL_
PREREQUISITE_FAILED
0x80073CFD 无法满足指定的安装先决条件。
ERROR_PACKAGE_
REPOSITORY_CORRUPTED
0x80073CFE 包存储库已损坏。
如果此注册表项引用的文件夹不存在或损坏,可能会收到此错误:
HKLM\Software\Microsoft\Windows</strong>
CurrentVersion\Appx\PackageRepositoryRoot
若要从此状态恢复,请刷新电脑。
ERROR_INSTALL_
POLICY_FAILURE
0x80073CFF 若要安装此应用,需要开发人员许可证或启用旁加载的系统。
如果包不符合以下要求之一,可能会收到此错误:
  • 应用在具有Windows开发人员许可证的计算机上使用 F5 在Visual Studio部署。
  • 该包使用 Microsoft 签名进行签名,并将其部署为Windows或Microsoft Store的一部分。
  • 该包使用受信任的签名进行签名,并在启用了 AllowAllTrustedApps 策略的计算机上、启用了 AllowAllTrustedApps 策略的已加入域的计算机或启用了 AllowAllTrustedApps 策略的Windows旁加载许可证的计算机进行签名。
ERROR_PACKAGE_UPDATING 0x80073D00 无法启动应用,因为它当前正在更新。
ERROR_DEPLOYMENT_
BLOCKED_BY_POLICY
0x80073D01 包部署操作被策略阻止。 请与系统管理员联系。
可能的原因:
  • 应用程序控制策略阻止了包部署。
  • 包部署被“允许特殊配置文件中的部署操作”策略阻止。
可能的原因之一是需要漫游配置文件。 有关在用户帐户上设置漫游用户配置文件的信息,请参阅 “部署漫游用户配置文件”。 如果系统上未配置任何策略,但仍会看到此错误,可能已使用临时配置文件登录。 注销并再次登录,然后再次尝试该操作。
ERROR_PACKAGES_IN_USE 0x80073D02 无法安装包,因为它修改的资源当前正在使用中。
ERROR_RECOVERY_
FILE_CORRUPT
0x80073D03 无法恢复包,因为恢复所需的数据已损坏。
ERROR_INVALID_
STAGED_SIGNATURE
0x80073D04 签名无效。 若要在开发人员模式下注册,AppxSignature.p7x 和AppxBlockMap.xml必须有效或不应存在。
如果你是将 F5 与 Visual Studio 配合使用的开发人员,请确保生成的项目目录不包含早期版本的包中的签名或阻止映射文件。
ERROR_DELETING_EXISTING_
APPLICATIONDATA_STORE_FAILED
0x80073D05 删除包以前存在的应用程序数据时出错。
如果 模拟器 正在运行,则会出现此错误。 关闭模拟器。 例如,如果在应用数据 (中打开了文件,如果在文本编辑器中打开了日志文件) ,则还可以收到此错误。
ERROR_INSTALL_
PACKAGE_DOWNGRADE
0x80073D06 无法安装包,因为已安装此包的更高版本。
ERROR_SYSTEM_
NEEDS_REMEDIATION
0x80073D07 检测到系统二进制文件中的错误。 若要解决此问题,请尝试刷新电脑。
ERROR_APPX_INTEGRITY_
FAILURE_EXTERNAL
0x80073D08 系统上检测到损坏的非Windows二进制文件。
ERROR_RESILIENCY_
FILE_CORRUPT
0x80073D09 无法恢复操作,因为恢复所需的数据已损坏。
ERROR_INSTALL_FIREWALL_
SERVICE_NOT_RUNNING
0x80073D0A 无法安装包,因为Windows防火墙服务未运行。 启用Windows防火墙服务,然后重试。
ERROR_PACKAGE_MOVE_FAILED 0x80073D0B 包移动操作失败。
ERROR_INSTALL_VOLUME_
NOT_EMPTY
0x80073D0C 部署操作失败,因为卷不为空。
ERROR_INSTALL_VOLUME_
离线
0x80073D0D 部署操作失败,因为卷处于脱机状态。 对于包更新,卷是指所有包版本的已安装卷。
ERROR_INSTALL_VOLUME_
腐败
0x80073D0E 部署操作失败,因为指定的卷已损坏。
ERROR_NEEDS_REGISTRATION

0x80073D0F 部署操作失败,因为需要首先注册指定的应用程序。
ERROR_INSTALL_WRONG_
PROCESSOR_ARCHITECTURE
0x80073D10 部署操作失败,因为包以错误的处理器体系结构为目标。
ERROR_DEV_SIDELOAD_
LIMIT_EXCEEDED
0x80073D11 已达到此设备上允许的最大开发人员旁加载包数。 请卸载旁加载的包,然后重试。
ERROR_INSTALL_OPTIONAL_
PACKAGE_REQUIRES_
MAIN_PACKAGE
0x80073D12 安装此可选包需要主应用包。 首先安装主包,然后重试。
ERROR_PACKAGE_NOT_
SUPPORTED_ON_FILESYSTEM
0x80073D13 此文件系统不支持此应用包类型。
ERROR_PACKAGE_MOVE_
BLOCKED_BY_STREAMING
0x80073D14 在应用程序完成流式处理之前,将阻止包移动操作。
ERROR_INSTALL_OPTIONAL_
PACKAGE_APPLICATIONID_
NOT_UNIQUE
0x80073D15 主应用包或其他可选应用包的应用程序 ID 与此可选包相同。 更改可选包的应用程序 ID 以避免冲突。
ERROR_PACKAGE_STAGING_
ONHOLD
0x80073D16 此暂存会话已保留,以允许另一个暂存操作的优先级。
ERROR_INSTALL_INVALID_
RELATED_SET_UPDATE
0x80073D17 无法更新相关集,因为更新集无效。 相关集中的所有包必须同时更新。
ERROR_INSTALL_OPTIONAL_
PACKAGE_REQUIRES_MAIN_
PACKAGE_FULLTRUST_CAPABILITY
0x80073D18 具有 FullTrust 入口点的可选包要求主包具有 runFullTrust 功能。
ERROR_DEPLOYMENT_BLOCKED_
BY_USER_LOG_OFF
0x80073D19 发生错误是因为用户已注销。
ERROR_PROVISION_OPTIONAL_
PACKAGE_REQUIRES_MAIN_
PACKAGE_PROVISIONED
0x80073D1A 可选的包预配要求还预配依赖项主包。
ERROR_PACKAGES_REPUTATION_
CHECK_FAILED
0x80073D1B 包未能通过 SmartScreen 信誉检查
ERROR_PACKAGES_REPUTATION_
CHECK_TIMEDOUT
0x80073D1C SmartScreen 信誉检查操作超时。
ERROR_DEPLOYMENT_OPTION_
NOT_SUPPORTED
0x80073D1D 不支持当前部署选项。
ERROR_APPINSTALLER_
ACTIVATION_BLOCKED
0x80073D1E 由于此应用的 .appinstaller 更新设置,激活被阻止。
ERROR_REGISTRATION_FROM_
REMOTE_DRIVE_NOT_SUPPORTED
0x80073D1F 不支持远程驱动器。 使用 \server\share 注册远程包。
ERROR_APPX_RAW_
DATA_WRITE_FAILED
0x80073D20 无法处理和将下载的包数据写入磁盘。
ERROR_DEPLOYMENT_BLOCKED_
BY_VOLUME_POLICY_PACKAGE
0x80073D21 由于每个包系列策略限制非系统卷上的部署,因此阻止了部署操作。 根据策略,此应用必须安装到系统驱动器,但未设置为默认值。 在存储设置中,使系统驱动器默认位置以保存新内容,然后重试安装。
ERROR_DEPLOYMENT_BLOCKED_
BY_VOLUME_POLICY_MACHINE
0x80073D22 由于计算机范围的策略限制了非系统卷上的部署,因此阻止了部署操作。 根据策略,此应用必须安装到系统驱动器,但未设置为默认值。 在存储设置中,使系统驱动器默认位置以保存新内容,然后重试安装。
ERROR_DEPLOYMENT_BLOCKED_
BY_PROFILE_POLICY
0x80073D23 部署操作被阻止,因为不允许特殊配置文件部署 (特殊配置文件是在用户注销) 后丢弃更改的用户配置文件。 尝试登录到不是特殊配置文件的帐户。 可以尝试注销并重新登录到当前帐户,或尝试登录到其他帐户。
ERROR_DEPLOYMENT_FAILED_
CONFLICTING_MUTABLE_PACKAGE_
目录
0x80073D24 由于包 的可变包目录冲突,部署操作失败。 若要安装此包,请删除具有冲突可变包目录的现有包。
ERROR_SINGLETON_RESOURCE_
INSTALLED_IN_ACTIVE_USER
0x80073D25 由于指定了单一实例资源,并且安装了该包的另一个用户登录,包安装失败。 请确保已安装包的所有活动用户都已注销,然后重试安装。
ERROR_DIFFERENT_VERSION_
OF_PACKAGED_SERVICE_INSTALLED
0x80073D26 由于安装了不同版本的服务,包安装失败。 尝试安装较新版本的包。
ERROR_SERVICE_EXISTS_
AS_NON_PACKAGED_SERVICE
0x80073D27 包安装失败,因为 .msix/.appx 包外部存在服务版本。 请联系软件供应商。
ERROR_PACKAGED_SERVICE_
REQUIRES_ADMIN_PRIVILEGES
0x80073D28 由于需要管理员权限,包安装失败。 请联系管理员安装此包。
ERROR_REDIRECTION_TO_
DEFAULT_ACCOUNT_NOT_ALLOWED
0x80073D29 包部署失败,因为操作会重定向到默认帐户,而调用方表示不这样做。
ERROR_PACKAGE_LACKS_
CAPABILITY_TO_DEPLOY_ON_HOST
0x80073D2A 包部署失败,因为包需要本机定位此主机的功能。
ERROR_UNSIGNED_PACKAGE_
INVALID_CONTENT
0x80073D2B 包部署失败,因为它的内容对未签名包无效。
ERROR_UNSIGNED_PACKAGE_
INVALID_PUBLISHER_NAMESPACE
0x80073D2C 包部署失败,因为它的发布者不在未签名的命名空间中。
ERROR_SIGNED_PACKAGE_
INVALID_PUBLISHER_NAMESPACE
0x80073D2D 包部署失败,因为它的发布者不在签名的命名空间中。
ERROR_PACKAGE_EXTERNAL_
LOCATION_NOT_ALLOWED
0x80073D2E 包部署失败,因为它的发布者不在签名的命名空间中。
ERROR_INSTALL_FULLTRUST_
HOSTRUNTIME_REQUIRES_MAIN_
PACKAGE_FULLTRUST_CAPABILITY
0x80073D2F 解析为包含完全信任内容的包的主机运行时依赖项需要主包具有 runFullTrust 功能。
APPX_E_PACKAGING_INTERNAL 0x80080200 打包 API 遇到内部错误。
APPX_E_INTERLEAVING_
NOT_ALLOWED
0x80080201 包无效,因为它的内容是交错的。
APPX_E_RELATIONSHIPS_
NOT_ALLOWED
0x80080202 包无效,因为它包含 OPC 关系。
APPX_E_MISSING_
REQUIRED_FILE
0x80080203 包无效,因为它缺少清单或块映射,或者存在代码完整性文件,但缺少签名文件。
确保包未缺少其中一个或多个必需的文件:
  • \AppxManifest.xml
  • \AppxBlockMap.xml
如果包包含 \AppxMetadata\CodeIntegrity.cat,则它还必须包含 \AppxSignature.p7x。
APPX_E_INVALID_MANIFEST 0x80080204 包的AppxManifest.xml文件无效。
APPX_E_INVALID_BLOCKMAP 0x80080205 包的AppxBlockMap.xml文件无效。
APPX_E_CORRUPT_CONTENT 0x80080206 无法读取包内容,因为它已损坏。
APPX_E_BLOCK_
HASH_INVALID
0x80080207 块的计算哈希值与块映射中存储的值不匹配。
APPX_E_REQUESTED_
RANGE_TOO_LARGE
0x80080208 当转换为字节范围的块时,请求的字节范围超过 4 GB。
TRUST_E_NOSIGNATURE 0x800B0100 主题中不存在签名。
如果包未签名或签名无效,可能会收到此错误。 必须对包进行签名才能部署。
CERT_E_UNTRUSTEDROOT 0x800B0109 已处理的证书链,但在信任提供程序不信任的根证书中终止。
请参阅 对包进行签名
CERT_E_CHAINING 0x800B010A 无法将证书链构建到受信任的根证书颁发机构。
请参阅 对包进行签名
APPX_E_INVALID_
SIP_CLIENT_DATA
0x80080209 用于对包进行签名 的SIP_SUBJECTINFO结构不包含所需的数据
APPX_E_INVALID_
KEY_INFO
0x8008020A 用于加密或解密包 的APPX_KEY_INFO 结构包含无效数据。
APPX_E_INVALID_
CONTENTGROUPMAP
0x8008020B .msix/.appx 包的内容组映射无效。
APPX_E_INVALID_
APPINSTALLER
0x8008020C 包的 .appinstaller 文件 无效。
APPX_E_DELTA_BASELINE_
VERSION_MISMATCH
0x8008020D delta 包中的基线包版本与要更新的基线包中的版本不匹配。
APPX_E_DELTA_PACKAGE_
MISSING_FILE
0x8008020E 增量包缺少更新包中的文件。
APPX_E_INVALID_
DELTA_PACKAGE
0x8008020F 增量包无效。
APPX_E_DELTA_APPENDED_
PACKAGE_NOT_ALLOWED
0x80080210 当前操作不允许增量追加包。
APPX_E_INVALID_
PACKAGING_LAYOUT
0x80080211 打包布局文件无效。
APPX_E_INVALID_
PACKAGESIGNCONFIG
0x80080212 packageSignConfig 文件无效。
APPX_E_RESOURCESPRI_
NOT_ALLOWED
0x80080213 如果包清单中没有资源元素,则不允许 resources.pri 文件。
APPX_E_FILE_
COMPRESSION_MISMATCH
0x80080214 基线和更新包中的文件的压缩状态不匹配。
APPX_E_INVALID_
PAYLOAD_PACKAGE_EXTENSION
0x80080215 面向较旧平台的有效负载包不允许使用非 .appx 扩展。
APPX_E_INVALID_
ENCRYPTION_EXCLUSION_FILE_LIST
0x80080216 encryptionExclusionFileList 文件无效。

应用程序未启动,其名称灰显

在运行Windows 10或更高版本的计算机上,无法启动某些应用程序,应用程序名称显示为灰色。

Some application names appear dimmed in the Start menu

尝试通过选择灰色名称打开应用程序时,可能会收到以下错误消息之一:

应用程序名称>存在问题<。 请与系统管理员联系以修复或重新安装它
错误:此应用无法打开

此外,在 Applications and Services\Microsoft\Windows\Apps 下的“Microsoft-Windows-TWinUI/Operational”日志中记录以下事件条目:

日志名称:Microsoft-Windows-TWinUI/Operational
来源:Microsoft-Windows-Immersive-Shell
日期: <日期>
事件 ID:5960
任务类别: (5960)
级别:错误
关键字:
说明:
激活应用Microsoft.BingNews_8wekyb3d8bbwe!Windows的 AppexNews。 启动协定因包处于状态而阻止了错误0x80073CFC:已修改。

原因

出现此问题的原因是修改了应用程序相应包的状态值的注册表项。

解决方法

警告

如果通过使用注册表编辑器或其他方法不当修改了注册表,可能会出现严重的问题。 这些问题可能要求重新安装操作系统。 Microsoft 无法保证这些问题可得到解决。 修改注册表的风险自负。

若要解决此问题:

  1. "开始"菜单注册表编辑器,然后找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\StateChange\PackageList子项。
  2. 若要备份子项数据,请右键单击 PackageList,选择“ 导出”,然后将数据另存为注册表文件。
  3. 对于事件 ID 5960 日志条目中列出的每个应用程序,请执行以下步骤:
    1. 找到 PackageStatus 条目。
    2. PackageStatus 的值设置为零 (0) 。

    备注

    如果 PackageList 下没有应用程序的条目,则问题还有一些其他原因。 对于本文中的示例事件,完整子项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\StateChange\PackageList\Microsoft.BingNews_8wekyb3d8bbwe!AppexNews\PackageStatus

  4. 重新启动计算机。

获取额外帮助

如果需要进一步帮助解决打包、部署或查询Windows应用包 (.msix/.appx) 开发人员时遇到的问题,请参阅这些额外的开发人员支持资源。