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

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

注释

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

获取诊断信息

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

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

  1. 执行以下步骤之一:

    • 在Windows菜单上单击 Start,键入 事件查看器press Enter
    • 运行 eventvwr.msc
  2. 在左页中,展开 事件查看器 (Local)>Applications and Services Logs>Microsoft>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

常见错误代码

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

错误代码 Value 说明和可能的原因
E_FILENOTFOUND 0x80070002 找不到文件或路径。 在 COM 类型库验证期间可能发生这种情况,此验证要求目录的路径实际存在于 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)在安装新软件包之前,删除系统中每个用户的旧软件包。
错误_需要修复 0x80073CFC 无法启动应用。 请尝试重新安装应用。
ERROR_INSTALL_
前提条件失败
0x80073CFD 无法满足指定的安装先决条件。
ERROR_PACKAGE_
存储库损坏
0x80073CFE 包存储库已损坏。
如果此注册表项引用的文件夹不存在或已损坏,可能会收到此错误:
HKLM\Software\Microsoft\Windows</strong>
CurrentVersion\Appx\PackageRepositoryRoot
若要从此状态恢复,请刷新电脑。
ERROR_INSTALL_
POLICY_FAILURE
0x80073CFF 若要安装此应用,需要开发人员许可证或启用旁加载的系统。
如果包不符合以下要求之一,可能会收到此错误:
  • 应用程序在具有 Windows 开发人员许可证的计算机上,通过 Visual Studio 使用 F5 部署。
  • 该包由Microsoft的签名进行签名,作为Windows的一部分或通过Microsoft Store进行部署。
  • 该包使用受信任的签名进行签名,并安装在具备开发人员许可证的计算机上,或者启用了 AllowAllTrustedApps 策略的已加入域的计算机上,或启用了 AllowAllTrustedApps 策略并具有 Windows 旁加载许可证的计算机上。
ERROR_PACKAGE_UPDATING 0x80073D00 无法启动应用,因为它当前正在更新。
ERROR_DEPLOYMENT_
根据策略被阻止
0x80073D01 包部署操作被策略阻止。 请与系统管理员联系。
可能的原因:
  • 应用程序控制策略阻止包部署。
  • 由于“允许特殊配置文件中的部署操作”策略,包部署被阻止。
可能的原因之一是需要漫游配置文件。 有关在用户帐户上设置漫游用户配置文件的信息,请参阅 “部署漫游用户配置文件”。 如果系统上未配置任何策略,但仍会看到此错误,也许你已使用临时配置文件登录。 注销并再次登录,然后再次尝试该操作。
ERROR_PACKAGES_IN_USE 0x80073D02 无法安装包,因为它修改的资源当前正在使用中。
错误恢复(ERROR_RECOVERY_)
文件损坏
0x80073D03 无法恢复包,因为恢复所需的数据已损坏。
ERROR_INVALID_
STAGED_SIGNATURE
0x80073D04 签名无效。 若要在开发人员模式下注册,AppxSignature.p7x 和 AppxBlockMap.xml 必须有效或不应存在。
如果你是将 F5 与 Visual Studio 配合使用的开发人员,请确保生成的项目目录不包含早期版本的包中的签名或块映射文件。
错误_删除_现有_
APPLICATIONDATA_STORE_FAILED
0x80073D05 删除包以前存在的应用程序数据时出错。
如果 模拟器 正在运行,则可以收到此错误。 关闭模拟器。 如果在应用数据中打开了文件(例如,如果在文本编辑器中打开了日志文件),则还可以收到此错误。
ERROR_INSTALL_
软件包降级
0x80073D06 无法安装包,因为已安装此包的更高版本。
ERROR_SYSTEM_
需要修正
0x80073D07 检测到系统二进制文件中的错误。 若要解决此问题,请尝试刷新电脑。
ERROR_APPX_INTEGRITY_
FAILURE_EXTERNAL
0x80073D08 系统上检测到损坏的非Windows二进制文件。
ERROR_RESILIENCY_
文件损坏
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_
由于流媒体限制被阻止
0x80073D14 在应用程序完成流式处理之前,包移动操作将被阻止。
ERROR_INSTALL_OPTIONAL_
PACKAGE_APPLICATIONID_
NOT_UNIQUE
0x80073D15 主应用包或其他可选应用包具有与此可选包相同的应用程序 ID。 更改可选包的应用程序 ID 以避免冲突。
ERROR_PACKAGE_STAGING_
ONHOLD
0x80073D16 此暂存会话已举行,以便优先安排另一个暂存操作。
ERROR_INSTALL_INVALID_
相关集合更新
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_
激活被阻止
0x80073D1E 由于此应用的 .appinstaller 更新设置,激活被阻止。
ERROR_REGISTRATION_FROM_
不支持远程驱动器
0x80073D1F 不支持远程驱动器。 使用 \server\share 注册远程包。
ERROR_APPX_RAW_
DATA_WRITE_FAILED
0x80073D20 无法处理下载的包数据并将其写入磁盘。
部署错误_被阻止_
BY_VOLUME_POLICY_PACKAGE
0x80073D21 由于每个包系列策略限制非系统卷上的部署,因此阻止了部署操作。 根据策略,此应用必须安装到系统驱动器,但未设置为默认值。 在存储设置中,使系统驱动器成为保存新内容的默认位置,然后重试安装。
ERROR_DEPLOYMENT_BLOCKED_
BY_VOLUME_POLICY_MACHINE
0x80073D22 由于机器全局策略限制在非系统卷上进行部署,因此部署操作被阻止。 根据策略,此应用必须安装到系统驱动器,但未设置为默认值。 在存储设置中,使系统驱动器成为保存新内容的默认位置,然后重试安装。
ERROR_DEPLOYMENT_BLOCKED_
BY_PROFILE_POLICY
0x80073D23 部署操作被阻止,因为不允许特殊配置文件部署(特殊配置文件是在用户注销后丢弃更改的用户配置文件)。 尝试登录非特殊用户配置的帐户。 可以尝试注销并重新登录到当前帐户,或尝试登录到其他帐户。
部署失败错误_
冲突的可变包_
目录
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_
需要管理员权限
0x80073D28 包安装失败,因为需要管理员权限。 请联系管理员安装此包。
ERROR_REDIRECTION_TO_
默认账户不允许
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_
位置不允许
0x80073D2E 包部署失败,因为它的发布者不在签名的命名空间中。
ERROR_INSTALL_FULLTRUST_
HOSTRUNTIME_REQUIRES_MAIN_
PACKAGE_FULLTRUST_CAPABILITY
0x80073D2F 解析到包含完全信任内容的程序包的宿主运行时依赖项要求主程序包具有 runFullTrust 功能。
ERROR_INSTALL_DRIVE_
NOT_FOUND
0x80073D3F 找不到包部署期间引用的驱动器。 如果以前将应用设置为在外部或辅助驱动器上安装,请确保它已连接且可访问。 可以在“设置>系统>存储>更改”中更改保存新内容的默认安装位置。
APPX_E_PACKAGING_INTERNAL 0x80080200 打包 API 遇到内部错误。
APPX_E_INTERLEAVING_
不允许
0x80080201 包无效,因为它的内容是混合的。
APPX_E_RELATIONSHIPS_
不允许
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 增量包中的基线包版本号与要更新的基线包中的版本号不匹配。
APPX_E_DELTA_PACKAGE_
MISSING_FILE
0x8008020E 增量包缺少更新包中的一个文件。
APPX_E_INVALID_
DELTA_PACKAGE
0x8008020F 增量包无效。
APPX_E_DELTA_APPENDED_
PACKAGE_NOT_ALLOWED
0x80080210 当前操作不允许使用增量附加包。
APPX_E_INVALID_
包装布局
0x80080211 打包布局文件无效。
APPX_E_INVALID_
包签名配置
0x80080212 packageSignConfig 文件无效。
APPX_E_RESOURCESPRI_
不允许
0x80080213 当包清单中没有资源元素时,不允许 resources.pri 文件。
APPX_E_FILE_
压缩不匹配
0x80080214 基线和更新包中文件的压缩状态不匹配。
APPX_E_INVALID_
PAYLOAD_PACKAGE_EXTENSION
0x80080215 面向较旧平台的有效负载包不允许使用非.appx扩展。
APPX_E_INVALID_
加密排除文件列表
0x80080216 encryptionExclusionFileList 文件无效。

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

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

某些应用程序名称在“开始”菜单中灰显

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

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

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

日志名称:Microsoft-Windows-TWinUI/Operational
来源:Microsoft-Windows-Immersive-Shell
日期:<date>
事件 ID:5960
任务类别:(5960)
级别:错误
关键字:
说明:
激活应用Microsoft.BingNews_8wekyb3d8bbwe.AppexNews,适用于Windows。 由于其软件包处于“已修改”状态,启动合约被阻止,并出现错误0x80073CFC。

原因

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

解决方案

Warning

如果您使用注册表编辑器或其他方法不正确地修改注册表,可能会出现严重问题。 这些问题可能需要重新安装操作系统才能解决。 微软无法保证能够解决这些问题。 您应自行承担修改注册表的风险。

要解决此问题:

  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)作为开发人员时遇到的问题,请参阅这些额外的开发人员支持资源。