使用这些建议来排查当您作为开发人员打包、部署或查询Windows应用包(.msix/.appx)时遇到的问题。
注释
本文面向开发人员。 如果你不是开发人员,并且正在寻找有关Windows应用安装错误的帮助,请参阅 Windows 支持。
获取诊断信息
API 失败时,会返回描述问题的错误代码。 如果错误代码未提供足够的信息,可在详细的事件日志中找到更多诊断信息。
若要使用 事件查看器 访问打包和部署事件日志,请执行以下步骤:
执行以下步骤之一:
- 在Windows菜单上单击 Start,键入 事件查看器,press Enter。
- 运行 eventvwr.msc。
在左页中,展开 事件查看器 (Local)>Applications and Services Logs>Microsoft>Windows。
检查以下类别下的可用日志:
- AppxPackagingOM>Microsoft-Windows-AppxPackaging/Operational
- AppXDeployment-Server>Microsoft-Windows-AppXDeploymentServer/Operational
首先查看 AppXDeployment-Server 下的日志。 如果错误是由 0x80073CF0 或 ERROR_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 | 无法打开包。 可能的原因:
|
|
ERROR_INSTALL_PACKAGE_ NOT_FOUND |
0x80073CF1 | 无法找到包裹。 删除当前用户未安装的包时,可能会收到此错误。 |
|
ERROR_INSTALL_INVALID_ 包 |
0x80073CF2 | 包数据无效。 |
|
ERROR_INSTALL_RESOLVE_ DEPENDENCY_FAILED(依赖失败) |
0x80073CF3 | 包未能进行更新、依赖项或冲突验证。 可能的原因:
|
|
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 | 若要安装此应用,需要开发人员许可证或启用旁加载的系统。 如果包不符合以下要求之一,可能会收到此错误:
|
| 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 | 包无效,因为它缺少清单或块映射,或者存在代码完整性文件,但缺少签名文件。 确保包未缺少其中一个或多个所需的文件:
|
| 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或更高版本的计算机上,无法启动某些应用程序,应用程序名称显示为灰色。
尝试通过选择灰色名称打开应用程序时,可能会收到以下错误消息之一:
< 应用程序名称>存在问题。 请与系统管理员联系,了解如何修复或重新安装
错误:此应用无法打开
此外,以下事件条目记录在
日志名称:Microsoft-Windows-TWinUI/Operational
来源:Microsoft-Windows-Immersive-Shell
日期:<date>
事件 ID:5960
任务类别:(5960)
级别:错误
关键字:
说明:
激活应用Microsoft.BingNews_8wekyb3d8bbwe.AppexNews,适用于Windows。 由于其软件包处于“已修改”状态,启动合约被阻止,并出现错误0x80073CFC。
原因
出现此问题的原因是修改了应用程序相应包的状态值的注册表项。
解决方案
Warning
如果您使用注册表编辑器或其他方法不正确地修改注册表,可能会出现严重问题。 这些问题可能需要重新安装操作系统才能解决。 微软无法保证能够解决这些问题。 您应自行承担修改注册表的风险。
要解决此问题:
- 启动注册表编辑器,然后找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\StateChange\PackageList 子项。
- 若要备份子项数据,请右键单击 PackageList,选择“ 导出”,然后将数据保存为注册表文件。
- 对于事件 ID 5960 日志条目中列出的每个应用程序,请执行以下步骤:
- 找到 PackageStatus 条目。
- 将 PackageStatus 的值设置为零(0)。
注释
如果 PackageList 下的应用程序没有条目,则问题还有其他原因。 对于本文中的示例事件,完整子项为 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\StateChange\PackageList\Microsoft.BingNews_8wekyb3d8bbwe!AppexNews\PackageStatus
- 重启电脑
获取额外帮助
如果需要进一步帮助解决打包、部署或查询Windows应用包(.msix/.appx)作为开发人员时遇到的问题,请参阅这些额外的开发人员支持资源。
- Microsoft 问答为您提供由专业人士和微软工程师组成的社区,及时解答您的技术问题。
- 对于社区对开发问题的帮助,我们提供了 论坛和 StackOverflow。
- Windows开发人员支持站点介绍了其他支持选项。