我们在构建 UWP 应用程序时收到以下错误消息。
任务“ValidateAppxManifest”失败。检索 COM 类工厂中 CLSID 为 {5842A140-FF9F-4166-8F5C-62F5B7B0C781} 的组件失败,原因是出现以下错误:8007045a 动态链接库 (DLL) 初始化例程失败。(来自 HRESULT 的异常:0x8007045A)。
{5842A140-FF9F-4166-8F5C-62F5B7B0C781} 指向 AppxPackaging.dll。注册表HKEY_CLASSES_ROOT\CLSID\{5842a140-ff9f-4166-8f5c-62f5b7b0c781}\InProcServer32
存在。
构建系统是带有 Windows Server Core 和 Visual Studio 2017 的 docker。
我如何才能获得有关潜在问题的更多信息?
“Windows 应用认证工具包”要正常工作必须安装哪些组件?
答案1
AppxPackaging 是Windows Kits
SDK 安装的一部分。错误提示缺少依赖项。
我们使用procmon
(例如choco install procmon
)来尝试找出那是哪个依赖项。您必须设置过滤器Path contains Appx
并运行构建作业。
笔记:如果构建作业如您所述在 Docker 容器中运行,则必须procmon
在主机上运行,而不是容器上运行。
进程列表在加载之前填充了大量信息AppxPackaging.dll
。然后它指出,在目标AppxSip.dll
中查找了Path
,但未找到 (结果NAME NOT FOUND
:)。因此,我们在系统中检查了此 dll。
我们确实在 Windows Kits 子文件夹中找到了相应的文件C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86
,并将此路径添加到环境中$env:Path
。然后就成功了。