依赖项查看器报告IESHIMS.DLL和WER.DLL丢失?

99

在安装了Internet Explorer 8的Windows XP Professional SP3电脑上,当我在我的可执行文件上运行依赖项检查工具(Dependency Walker)时,它报告说: IESHIMS.DLL和WER.DLL无法找到。

  1. 我需要这些DLL文件吗?
  2. 我可以从哪里获取这些文件?

我相信它们应该位于 C:\Windows\System32\Wer.dll 和 C:\Program Files\Internet Explorer\Ieshims.dll。


1
只是一个问题:你的应用程序是否可以在没有那些DLL的情况下运行?我的不能,尽管它只是一个在Windows上使用VS 2005编译的Linux命令行应用程序。 - Lena Schimmel
这件事发生在我的Windows 10电脑上。 - don bright
4个回答

89

ieshims.dll是Vista/7的产物,其中一个shim DLL被用来代理某些调用(例如CreateProcess)以处理受保护模式的IE,它在XP上不存在,因此是不必要的。 wer.dll与Windows错误报告有关,并且可能在Windows XP上无用,因为它具有与Vista及更高版本略有不同的错误报告系统。

我认为你不需要在XP上出现它们中的任何一个,并且通常会延迟加载。


4
很遗憾你无法告诉Dependency Walker IEFRAME.DLL并不需要这些延迟导入,以便让它停止展开树来显示它们。(对于我的XP SP3系统上带有IE8的LINK.EXE 9.00.30729.01来说,它们在树中比有趣的内容还要深达10层,我已经数不清了!) - SamB
谢谢你的回答tyranid,至少我知道这是个虚假错误。当在XP的C:\Windows\System32\attrib.exe上运行Dependency Walker 2.1.3623(日期为2002/04/16!)时,我遇到了与原帖相同的问题。我也在运行WinXP SP3和IE8。那么Dependency Walker又如何知道Vista或Windows 7文件的存在呢? - user566196
8
我并不相信这是真的,因为我发现在早在2003年编译和链接的代码中存在对IESHIMS.DLL的依赖 - 而且我还没有再往前看。更有可能的是,这些依赖关系存在于WinXP及其以后的SxS缓存中,而Depends工具无法处理它。 - Bob77
正在分析这两个DLL文件。IESHIMS.DLL的调用似乎有误导性,但是wer.dll在这些调用中确实被使用了(至少在我的情况下),并且只能在Vista或更高版本中运行。请参考https://msdn.microsoft.com/en-us/library/windows/desktop/bb513624(v=vs.85).aspx。 - notNullGothik

5

我最近遇到了这个问题,通过将IE8回滚到IE7来解决它。

我的猜测是,IE7有这些文件作为在Windows XP上工作的包装器,但是IE8可能是为与Vista / 7一起使用而设计的,因此它删除了这些文件,因为后期版本不再使用shim。


2

@RagingBull 这个链接很难在这里总结,它是一个下载页面。至少在 SO 开始为其用户托管文件之前。 - Tamás Szelei

-1

1· 我需要这些 DLL 吗?

这要看情况,因为 Dependency Walker 有点过时,可能会报告错误的依赖关系。

  1. 我在哪里可以找到它们?

大多数 DLL 可以在 https://www.dll-files.com 找到。

我相信它们应该位于 C:\Windows\System32\Wer.dll 和 C:\Program Files\Internet Explorer\Ieshims.dll。

对于我来说,leshims.dll 可以放置在 C:\Windows\System32\。上下文:Windows 7 64 位。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接