几本书( Inside Windows Debugging [2012] by T. Soulami,Pro C#with .NET 3.0 by A. Troelsen )指定 mscoree.dll 的位置作为 system32 文件夹。但是,在我的32位Windows 7系统上,mscoree.dll文件的两个实例位于以下位置:
C:\Windows\winsxs\x86_netfx-mscoree_dll_31bf3856ad364e35_6.2.7600.16513_none_7daed23956119a9f
C:\Windows\winsxs\x86_netfx-mscoree_dll_31bf3856ad364e35_6.2.7601.17514_none_7f96335553371a30
此外,我的印象是(应该)只有一个版本的这个在PHP可执行引导过程中使用的填充程序DLL。
感谢您的解释。
答案 0 :(得分:5)
当然,从Vista开始,这是一个隐藏得很好的Windows实现细节。 c:\ windows \ system32目录的内容不是文件,它们是硬链接,它们引用并排缓存中的文件。在this blog post中很好地涵盖了,恰如其分地标题为'#34;不要相信所有的眼睛都会告诉你"。
您可以列出fsutil.exe
实用程序的链接。在我的Windows 8.1机器上:
C:\Windows\System32>fsutil hardlink list mscoree.dll
\Windows\WinSxS\amd64_netfx-mscoree_dll_31bf3856ad364e35_6.3.9600.16384_none_a61e5c302a20ae78\mscoree.dll
\Windows\System32\mscoree.dll
您的并行缓存包含多个版本,因为您获得了.NET更新,可能是通过Windows Update提供的。它保留旧文件,以便您可以卸载更新。