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

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

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

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

现象

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

1 2 3 4 5 6 7 8 9

... BCD8:B4DCi000: Loading managed bootstrapper application. BCD8:B4DCe000: Error 0x80131508: Failed to create the managed bootstrapper application. BCD8:B4DCe000: Error 0x80131508: Failed to create UX. BCD8:B4DCe000: Error 0x80131508: Failed to load UX. BCD8:B4DCe000: Error 0x80131508: Failed while running ... BCD8:B4DCe000: Error 0x80131508: Failed to run per-user mode. BCD8:B4DCi007: Exit code: 0x80131508, restarting: No

调查

通过查询 HRESULT 错误码 0x80131508 可以得知它代表的意思是“INDEXOUTOFRANGE”。啊这……说明是 Burn 引擎出现了内部因为某些原因出现了错误,并且没有正确把错误原因标记出来。

然而对我们简单的托管安装包界面来说,更可能是我们自己的某些配置或代码不正确,导致 Burn 引擎内部代码炸掉的。

解决

这样的错误几乎不具有可调试性。因此,我直接将我偶然发现的原因和解决办法贴出来。

参考这篇入门教程中的代码,如果 AssemblyInfo.cs 文件中缺少标记 BootstrapperApplication 类型的特性,那么就会出现此错误。

1 2 3 4 5 6 7

... ++ using Microsoft.Tools.WindowsInstallerXml.Bootstrapper; ++ using Walterlv.InstallerUI; ++ assembly: BootstrapperApplication(typeof(Program)) ...

然而呀,官方在教大家写托管引导程序的时候,翻遍了整个文档都没有提醒过要写这个特性!所以特别容易被官方文档带偏,这里记录此文章避免大家踩坑。

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

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

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

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

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

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

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