C++ VisualStudio2005-C++;-什么控制清单的创建

C++ VisualStudio2005-C++;-什么控制清单的创建,c++,visual-studio,assemblies,version,manifest,C++,Visual Studio,Assemblies,Version,Manifest,我试图弄清楚为什么调试版本出现“未找到依赖程序集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文件

我试图弄清楚为什么调试版本出现“未找到依赖程序集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)条目:
第一个:name='Microsoft.VC80.DebugCRT'version='8.0.50608.0'
第二个:name='Microsoft.VC80.DebugCRT'版本='8.0.50727.762'

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

我可以得到一个将要开始的构建

当然,我确实安装了VS2008,但是是什么在控制这些版本呢?或者,我如何才能得到正确的调试dll版本“坚持”

VS2008是通过控制面板卸载的

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

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


EDIT2:我也在使用boost,在DLL中有.762版本,VS 2008是VC90而不是VC80,所以这不是问题的一部分。在C:\WINDOWS\WinSxS\Policys中可以找到清单请求的程序集与加载的SxS assenbly之间的关系。IIRC,“8.0.50608.0”由VS2005 pre-SP1生成。这是错误的,应该是8.0.50727.42,但这是由政策决定的


我不知道你是怎么得到两份舱单的。您的清单设置是什么?

该版本是从Boost DLL中获取的,该DLL是Boost的下载预编译版本。一旦这些库被重新编译(并重新安装),解决方案的重新构建就会产生一个单一版本的清单,程序链接并运行


因此,请检查导入到解决方案中的lib和dll的使用版本。

我建议在您的特定环境中重建Boost。另外,通过静态链接CRT,您可以完全取消并排组件…

是的-我已经这样做了,但是被MFC咬了一口,不想链接。我正在寻找取代MFC打印机类和转储MFC完全。