我试图弄清为什么调试构建因“找不到依赖程序集microsoft.vc80.debugcrt”事件错误而崩溃。

删除所有内容(不是.cpp或.h的所有内容)并重新创建解决方案后-我仍然遇到问题。

谷歌搜索是徒劳的,重新安装VS并没有产生任何变化。

我确实在C:\ WINDOWS \ WinSxS \ x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c中有dll。

我打开了\ debug \ .exe.intermediate.manifest文件,它有2个(dependentAssembly)条目:
    1st:名称='Microsoft.VC80.DebugCRT'版本='8.0.50608.0'
    第二名:name ='Microsoft.VC80.DebugCRT'version ='8.0.50727.762'

如果我删除一个并将另一个更改为
 名称='Microsoft.VC80.DebugCRT'版本='8.0.50727.42'

我可以开始构建。

当然,我确实安装了VS2008,但是控制版本的是什么?或如何获得正确的调试dll版本以“粘贴”。

通过控制面板卸载了VS2008。

编辑:如果搜索DebugCRT,则在注册表中找不到任何内容。
      环境路径指向VS8文件夹。
      c:\ windows \ winsxs \ policies文件夹中只有1个DebugCRT文件夹
         (8.0.50.727.42)
      c:\ windows \ winsxs \ manifests文件夹仅包含.cat和.manifest的.42版本
      .manifest文件(在清单文件夹中)的版本为“ 8.0.50727.42”

澄清:清单文件包含2个“ dependentAssembly”条目,每个条目具有不同的版本,而不是.42。我可以删除1个条目,并在另一个条目上更改版本以匹配.42,以启动调试版本。

EDIT2:我也在使用boost,并且在DLL中有.762版本

最佳答案

该版本是从Boost DLL中获取的,这些DLL是Boost的下载,预编译版本。重新编译(并重新安装)库后,重新生成解决方案将生成具有单个版本的清单,并且程序已链接并运行。

因此-检查所导入版本的解决方案中导入的库和dll。

10-06 11:41