Exception 来自HRESULT的异常:0x800736B1

Exception 来自HRESULT的异常:0x800736B1,exception,managed-c++,Exception,Managed C++,嗨, 我已经设计了一个控制台应用程序来测试C++项目(.NETFramework 3.5)。我为这个应用程序创建了一个安装程序,并将其安装在虚拟机上以进行测试。 但是,每当我在VM上运行此已安装的应用程序时,它都会给我未处理的异常,即“无法加载XYZ程序集或其依赖项之一。由于应用程序配置不正确,此应用程序无法启动。重新安装应用程序可能会修复此问题(HRESULT中的异常:0x800736B1)” 我怎样才能解决这个问题 谢谢, Kapil我也有同样的问题,但当我在VisualStudio中将设置

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

我怎样才能解决这个问题

谢谢,
Kapil

我也有同样的问题,但当我在VisualStudio中将设置更改为“Release”时,问题就解决了


i、 e在“发布”模式下构建程序集。

问题在于anthony所说的

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


你可以看到这个:

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

问题是缺少C++重新分配,就像马斯特罗所说的那样。对我来说,我需要2008年的版本。我搜索了“VisualStudioC++ +可重新分发2008”,第一个结果是一个微软支持页面,它正好是我需要的。p>
如果你知道你的DLL是用哪个版本开发的,只需安装那个版本,但如果你和我一样,你不知道,只需安装不同的年份,一次一个,直到它工作。我第一次尝试就幸运地度过了2008年。

在我的例子中,这个错误是由于.config文件中的错误配置引起的(xml.config文件中的一个解析器错误,有两个!!)。我认为这个问题的解决方案是有效的,因为更改为发布模式会导致使用不同的配置文件


多亏了这一点,我找到了解决方案,我们这里也有类似的东西。

有人能解释一下这种行为的逻辑吗?为什么“调试”dll加载失败,“发布”工作?@eyal我认为这与目标计算机上不存在调试C运行时有关。@eyal是一个老问题,但我试图在底部解释这一点。可能是配置文件的配置错误。请注意,我也有同样的问题,安装vcredist 2008一开始不起作用。相反,我需要一个特定版本的vcredist_2008(我的主机上安装了3个不同的版本)。