我有一個使用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應該已經結束,因爲我們有清單???)
如果有人有,我會非常感激對我的解釋!