隔離元件
安裝套件的作者可以指定安裝程式將應用程式的共用檔案(通常是共用 DLL)複製到該應用程式的資料夾,而不是複製到共用位置。 此私人檔案集(DLL)則只會由應用程式使用。 以這種方式將應用程式與其共用元件隔離在一起具有下列優點:
- 應用程式一律會使用其部署所在的共享檔案版本。
- 安裝應用程式不會覆寫其他應用程式所共用檔案的其他版本。
- 使用不同版本共用檔案的其他應用程式後續安裝無法覆寫此應用程式所使用的檔案。
由於 COM 的目前實作會針對每個 CLSID/Context 配對保留登錄中的單一完整路徑,因此會強制所有應用程式使用相同的共用 DLL 版本。 若要讓應用程式保留 COM 伺服器的私用複本,Windows 2000 中的系統載入器會檢查 是否存在 。應用程式資料夾中的本機檔案。 如果系統載入器偵測到 。本機檔案會改變其搜尋邏輯,以偏好與應用程式位於相同資料夾中的 DLL。
當 Windows Installer 執行 IsolateComponents 巨集指令時, 他們會將 IsolatedComponent 數據表Component_Shared數據行中指定的元件檔案(通常是共用 DLL)的檔案複製到與Component_Application數據行中指定的元件(通常是 .exe 檔案)相同的資料夾中。 安裝程式在此目錄中建立檔案,長度為零位元組,具有Component_Application密鑰檔案的簡短檔名(通常名稱與附加的應用程式 .exe相同)。當地。 安裝程式會在其共用位置使用元件的註冊,而且不會為私人位置中的元件複本寫入任何註冊資訊。
如需詳細資訊,請參閱: