Manifest msvcp90.dll依赖于错误的msvcr90.dll?

Manifest msvcp90.dll依赖于错误的msvcr90.dll?,manifest,visual-studio-2008-sp1,win64,msvcr90.dll,Manifest,Visual Studio 2008 Sp1,Win64,Msvcr90.dll,我有一个用VS2008(amd64)构建的dll项目。dll的清单显示 <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' /> 怎么会这样?难道这整个清单不是为了避免类似的情况,通过给每个dll/exe提供构建它所使用的版本以及它所依赖的CRT版本的

我有一个用VS2008(amd64)构建的dll项目。dll的清单显示

<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' />
怎么会这样?难道这整个清单不是为了避免类似的情况,通过给每个dll/exe提供构建它所使用的版本以及它所依赖的CRT版本的信息吗

第二,更令人困惑的是,msvcp90.dll依赖于msvcr90.dll,但是找不到msvcr90.dll!?!嘿,它和msvcm90.dll和msvcp90.dll在同一个winsxs目录中! 如果我将正确的msvcr90.dll复制到与我的dll相同的目录中,它就会工作!(但再说一次,这不是我们在DllHell时代的情况吗?既然我们有了清单,msvc*.dll复制不应该结束吗?)


如果有人能给我解释一下,我将不胜感激

对于清单,Microsoft引入了一种新的“dll地狱”来解析“dll地狱”:(

顺便说一下,您引用的最后一个版本(9.0.30729)是升级到SP1的MSVCR9 CRT。 可能您可以尝试使用此版本更新VS2008以“同步”清单

amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251