加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

清单 – msvcp90.dll依赖于错误的msvcr90.dll?

发布时间:2020-12-14 02:45:09 所属栏目:Windows 来源:网络整理
导读:我有一个用VS2008(amd64)构建的DLL项目. dll的清单说 assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' / 当我将dll加载到DependencyWalker时,它引用winsx
我有一个用VS2008(amd64)构建的DLL项目. dll的清单说

<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='amd64' publicKeyToken='1fc8b3b9a1e18e3b' />

当我将dll加载到DependencyWalker时,它引用winsxs-directory

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复制应该结束,因为我们有清单???)

如果有人对我有解释,我将非常感激!

解决方法

有了清单,Microsft引入了一种新的“dll hell”来解决“dll hell”:(

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读