前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 WiX Burn 制作托管安装包:出现 0x80070002 错误

用 WiX Burn 制作托管安装包:出现 0x80070002 错误

作者头像
walterlv
发布2023-10-23 08:34:51
2770
发布2023-10-23 08:34:51
举报

使用 WiX 的 Burn 引擎制作自定义托管引导程序的 exe 安装包时,双击生成的安装包没有反应。如果查看日志可以发现有 0x80070002 错误。本文介绍其调查和解决方法。

现象

双击制作的自定义引导程序的 exe 安装包没有反应,通过查看 Burn 引擎的输出日志可以发现如下关键的错误码:

1 2 3 4 5 6 7 8 9

... 1874:8D8Ci000: Loading managed bootstrapper application. 1874:8D8Ce000: Error 0x80070002: Failed to create the managed bootstrapper application. 1874:8D8Ce000: Error 0x80070002: Failed to create UX. 1874:8D8Ce000: Error 0x80070002: Failed to load UX. 1874:8D8Ce000: Error 0x80070002: Failed while running ... 1874:8D8Ce000: Error 0x80070002: Failed to run per-user mode. 1874:8D8Ci007: Exit code: 0x80070002, restarting: No

调查

通过查询 HRESULT 错误码 0x80070002 可以得知它代表的意思是“文件不存在”。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

❯ err 0x80070002 # for hex 0x80070002 / decimal -2147024894 COR_E_FILENOTFOUND corerror.h DIERR_NOTFOUND dinput.h DIERR_OBJECTNOTFOUND dinput.h STIERR_OBJECTNOTFOUND stierr.h DRM_E_WIN32_FILE_NOT_FOUND windowsplayready.h E_FILE_NOT_FOUND wpc.h # as an HRESULT: Severity: FAILURE (1), FACILITY_NTWIN32 (0x7), Code 0x2 # for hex 0x2 / decimal 2 STATUS_WAIT_2 ntstatus.h # as an HRESULT: Severity: FAILURE (1), FACILITY_WIN32 (0x7), Code 0x2 ERROR_FILE_NOT_FOUND winerror.h # The system cannot find the file specified. # 8 matches found for "0x80070002"

所以到底是什么不存在呢?

这篇入门教程中,涉及到找不到托管引导程序(WiX 官方喜欢称之为 MBA,Managed Bootstrapper Application)的地方可能有这些:

  1. Bundle.wxs 文件中将托管引导程序加入到负载的地方
  2. BootstrapperCore.config 文件中,设置的 assemblyName 属性

对于 1,如果加入到负载时文件不存在,那么这个 Bundle.wxs 所在的项目都无法编译通过,所以 1 原因可以排除。那么只剩下原因 2 了,如果发现其名称与实际程序集名称不一样(例如改了项目名,或者从教程中复制了代码却没有对应改成自己项目中的名字),那么原因就是这个了。

解决

修改 BootstrapperCore.config 文件(在这篇教程中是 App.config 文件),将 assemblyName 的值改为正确的托管引导程序(MBA)的名字。

本文会经常更新,请阅读原文: https://blog.walterlv.com/post/wix-managed-bootstrapper-application-error-80070002.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 ([email protected])

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 现象
  • 调查
  • 解决
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档