我试图找出原因调试版本是用吹“从属组件microsoft.vc80.debugcrt找不到”事件错误。

删去(什么也没.CPP或.h)中并重新创建解决方案 - 我仍然有问题。

一个谷歌搜索没有结果和一个VS的重新安装没有产生任何变化。

我确实有在C的DLL:\ Windows \ WinSxS文件\ x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c

我打开\调试\ .exe.intermediate.manifest文件,它有2(dependentAssembly)项:搜索     1:名称= 'Microsoft.VC80.DebugCRT' 版本= '8.0.50608.0' 结果     第二:名称= 'Microsoft.VC80.DebugCRT' 版本= '8.0.50727.762'

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

我可以得到一个构建,将启动。

就算我没有安装VS2008 - 但什么是控制版本?或者我怎样才能得到正确的调试DLL版本“粘”。

VS2008是通过控制面板de安装。

编辑:如果DebugCRT中搜索没有发现任何在注册表中搜索       环境路径指向VS8文件夹。点击       只有1在c DebugCRT文件夹:\ WINDOWS \ winsxs文件\ Policies文件夹点击          (8.0.50.727.42)点击       在C:\ WINDOWS \ winsxs文件\文件夹中表现仅拥有0.42版本的.cat和.manifest的结果的       该.manifest的文件(在上面的清单文件夹)具有版本= “8.0.50727.42”

澄清:清单文件具有2“dependentAssembly”各自具有不同版本,而不是0.42条目。我可以删除1项,改变对其他的版本相匹配的0.42得到一个调试版本启动。

EDIT2:我还使用升压和DLL的内部存在0.762版本

有帮助吗?

解决方案

版本通过从升压的DLL这是升压的下载,预编译版本拾取。一旦库被重新编译的(和重新安装)的溶液的重新构建产生与单个版本和链接程序清单和跑。

因此 - 确认被导入到用于使用的版本溶液中的库和DLL。

其他提示

VS 2008是VC90不VC80,因此这不是问题的一部分。清单请求的组件和的SxS加载assenbly之间的关系用C是发现:\ Windows \ WinSxS文件\政策。 IIRC, “8.0.50608.0” 由VS2005 SP1之前生成。这是错误的,应该是8.0.50727.42,但是这是由政策抓住了。

我不知道你是如何获得两个清单。什么是您的清单设置?

我建议在您的特定环境改造提升。此外,您可以通过完全静态链接的CRT废除由侧部组件的侧面......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top