如果我沒記錯的話,如果應用程式在其清單中指定依賴項,Windows 加載程式將從C:\Windows\WinSxS\xxx\檔案夾加載指定版本的 DLL。
當我在研究C:\Windows\System32\dccw.exeWindows 上的“顯示顏色校準”應用程式時,我看到了這種奇怪的行為:
Application manifest has only one dependency - "Microsoft.Windows.Common-Controls"
which is basically the - comctl32.dll

但是,當您運行時dccw.exe,它會從 WinSXS 檔案夾中加載兩個 DLL;comctl32.dll正如預期的那樣GdiPlus.dll。

GdiPlus.dll清單中不應該存在依賴項。還是我不明白 WinSxS 如何正常作業?
uj5u.com熱心網友回復:
不需要在應用程式清單中指定所有依賴項。您可以添加一些但忽略其他一些。
正如漢斯在評論中提到的那樣,gdiplus下面WinSxS是指向同一檔案的硬鏈接system32:
> C:\Windows\system32>fsutil.exe hardlink list GdiPlus.dll
\Windows\WinSxS\amd64_microsoft.windows.gdiplus.systemcopy_31bf3856ad364e35_10.0.
19041.1645_none_5b73408eab60fd9c\GdiPlus.dll
\Windows\System32\GdiPlus.dll
因此,從功能上講,加載該檔案的哪個“副本”并不重要。
至于為什么這個程序似乎從WinSxS...加載兩個硬鏈接是

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/471160.html
上一篇:如何通過元標記更改內容安全策略?
