我试图弄清为什么调试构建因“找不到依赖程序集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。