【问题标题】:Exception from HRESULT: 0x800736B1HRESULT 异常:0x800736B1
【发布时间】:2011-07-17 22:57:21
【问题描述】:

嗨, 我设计了一个控制台应用程序来测试我的 C++ 项目(.Net 框架 3.5)。我为此应用程序创建了一个设置并将其安装在虚拟机上以便对其进行测试。 但是每当我在 VM 上运行这个已安装的应用程序时,它都会给我未处理的异常,说:“无法加载 XYZ 程序集或其依赖项之一。此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决问题( HRESULT 异常:0x800736B1)"

我该如何解决这个问题?

谢谢, 卡皮尔

【问题讨论】:

    标签: exception managed-c++


    【解决方案1】:

    在我的情况下,错误是由于 .config 文件中的错误配置引起的(xml .config 文件中的解析器错误有两个!!)。我认为这个问题的解决方案是可行的,因为更改为 Release Mode 会引发使用不同的配置文件。

    感谢page,我找到了解决方案,在question 中我们也有类似的东西。

    【讨论】:

      【解决方案2】:

      老问题,但由于这是谷歌的第一个结果,我会为下一个人添加这个。

      正如 mastro 所说,问题是缺少 C++ 可再发行组件。对我来说,我需要 2008 版。我用谷歌搜索了“visual studio c++ redistributable 2008”,第一个结果是一个 Microsoft 支持页面,其中包含我所需要的内容。

      如果您知道您的 DLL 是使用哪个版本开发的,只需安装那个版本,但如果您像我一样不知道,只需安装不同年份的版本,直到它工作为止。 2008 年我第一次尝试就很幸运。

      【讨论】:

      • 请注意,我遇到了同样的问题,安装 vcredist 2008 一开始没有用。相反,我需要一个 特定 版本的 vcredist_2008(我的主机上安装了 3 个不同的版本)。
      【解决方案3】:

      问题出在安东尼所说的。

      在虚拟机中找不到调试 C+ 运行时。它们不可分发。您必须安装 Visual Studio 或其子集。

      你可以看到这个:How to install VC80CRT debug runtimes without full visual studio 2005?

      【讨论】:

        【解决方案4】:

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

        即在“发布”模式下构建您的程序集。

        【讨论】:

        • 有人能解释一下这种行为的逻辑吗?为什么“调试” dll 加载失败而“发布”工作?
        • @eyal 我认为这与目标机器上不存在调试 C 运行时有关。
        • @eyal 老问题,但我试图在底部解释这一点。可能是配置文件配置错误
        猜你喜欢
        • 2012-07-21
        • 2011-03-02
        • 2012-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-01
        相关资源
        最近更新 更多