HRESULT异常:0x800736B1

3
您好,我已经设计了一个控制台应用程序来测试我的 C++ 项目(.Net framework 3.5)。我创建了一个安装程序并将其安装在虚拟机上进行测试。但是,每当我在 VM 上运行此安装的应用程序时,它会给出未处理的异常,显示“无法加载 XYZ 组件或其某个依赖项。此应用程序启动失败,因为应用程序配置不正确。重新安装应用程序可能会解决问题(Exception from HRESULT: 0x800736B1)”。
如何解决此问题?
谢谢, Kapil
4个回答

7

我有同样的问题,但当我在 Visual Studio 中将设置更改为“Release”时,问题得到解决。

即以“Release”模式构建您的程序集。


1
有人能解释一下这种行为的逻辑吗?为什么“Debug” DLL 加载失败而“Release”可以正常工作? - eyal
@eyal 我认为这与目标机器上缺少调试 C 运行时有关。 - Anthony
@eyal 老问题,但我尝试在底部解释了。可能是配置文件的配置错误。 - JLM

3

虽然这个问题已经有点老了,但是由于它在 Google 上是第一个结果,所以我想为下一个遇到这个问题的人添加一个解决方案。

问题出在缺少 C++ 可再发行组件,就像 mastro 所说的那样。对于我来说,我需要安装 2008 版本。我在 Google 上搜索了“Visual Studio C++ 可再发行组件 2008”,第一个结果是 Microsoft 支持页面,里面恰好有我需要的内容。

如果你知道你的 DLL 是由哪个版本开发的,只需安装该版本即可,但如果你像我一样不知道,请逐个安装不同年份的版本,直到成功为止。我第一次尝试运行了 2008 版本就顺利解决了问题。


只是一条注释,我遇到了同样的问题,安装vcredist 2008一开始并没有起作用。相反,我需要一个特定的版本vcredist_2008(我在我的主机上安装了3个不同的版本)。 - lucas.mdo

2

0
在我的情况下,错误是由于 .config 文件中的配置错误(xml .config 文件中有两个 !! 的解析器错误)而引起的。我认为这个问题的解决方案有效是因为切换到 Release Mode 会使用不同的配置文件。
我通过这个 页面 找到了解决方案,在这个 问题 中我们也有类似的东西。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接