XP 引入隔離組件與並列共享技術,從架構層面徹底解決經典「DLL 地獄」問題。
問題回顧:DLL 版本衝突
舊版 Windows 系統目錄僅能存在單一版本 DLL。安裝新程式需舊版 DLL 時,覆蓋導致舊程式失效;保留導致新程式無法運行。兩難困境頻發。
XP 解決方案:多版本共存 + 應用程式自主綁定
- 隔離組件:允許同一組件/DLL 多個版本同時存在於系統中。
- 並列共享:應用程式透過資訊清單明確宣告所需組件版本,運行時系統依清單載入對應版本,互不干擾。
核心實作:資訊清單
- XML 格式,包含應用程式安裝/組裝所有中繼資料(COM 類別、介面定義、DLL 定義等)。
- 兩類清單:應用程式清單(描述整個應用程式所需中繼資料)、組件清單(描述單一組件安裝資訊)。
- 元素分公用(安裝於
WinSxS 目錄,供其他程式使用)與私用(安裝於應用程式專屬目錄,專屬使用)。
效益
- 應用程式升級/移除不影響其他程式所需組件。
- 系統安全與應用程式安全雙重保障。
- ComCtl v6 已採用並列共享,證明此為 Windows 未來演進方向。
開發者強烈建議採用隔離組件與並列共享技術編寫應用程式,從根源杜絕 DLL 版本衝突,構建穩定可靠的軟體生態。