我有一个使用VS2008(amd64)构建的dll项目。 DLL的清单说msvcp90.dll依赖于错误的msvcr90.dll?
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' />
当我加载DLL到DependencyWalker它指的winsxs文件目录
amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_08e61857a83bc251
如何发生的呢?是不是这整个明显的东西是为了避免这样的情况,通过给每个DLL/EXE的信息与它建立的版本,因此它所依赖的CRT版本?
;第二,更令人困惑的事情是,msvcp90.dll取决于MSVCR90.DLL 但 MSVCR90.DLL将无法找到!?!嘿,它与msvcm90.dll和msvcp90.dll一起在winsxs目录中! 如果我将正确的msvcr90.dll复制到与我的dll相同的目录中,它的工作原理! (但是,这不是我们在DllHell时代的情况吗?并且不应该因为msvc * .dll-copying应该已经结束,因为我们有清单???)
如果有人有,我会非常感激对我的解释!