共用方式為


隔離應用程式和並存組件的概念

更新:2007 年 11 月

如果某個應用程式的所有元件都是並存組件,那麼就可以將這個應用程式視為隔離的應用程式。並存組件是資源的集合,是一組 DLL、Windows 類別、COM 伺服器、型別程式庫或介面,可供應用程式在執行階段使用。一般而言,並存組件是一至數個 DLL,例如,C 執行階段程式庫組件包含 msvcr90.dll、msvcm90.dll 和 msvcp90.dll 三個 DLL,當應用程式是使用來自 CRT 程式庫的函式建置時,就會使用此組件。

共用或私用

並存組件可以是共用或私用組件。在其資訊清單中指定對組件之相依性的多個應用程式可使用並存組件,而同時間執行的不同應用程式則可以共用並存組件的多個版本。私用組件是隨著應用程式一起部署的組件,並且專供該應用程式使用。私用組件會安裝在含有應用程式可執行檔的資料夾中,或是安裝在它的其中一個子資料夾中。

資訊清單和搜尋順序

資訊清單會描述隔離的應用程式並存組件。資訊清單是一個 XML 文件,它可以是外部 XML 檔案,或者內嵌於應用程式或組件中做為資源。隔離之應用程式的資訊清單檔是用來管理共用之並存組件的名稱和版本 (應用程式在執行階段應該要繫結至這個組件)。並存組件的資訊清單會指定並存組件的名稱、版本、資源和相依組件。如果是共用並存組件,它的資訊清單會安裝在 WinSxS\Manifests 資料夾中;如果是私用組件,建議您將它的資訊清單加入 DLL 中,做為 ID 等於 1 的資源,而私用組件的名稱則可以和 DLL 的名稱相同。如需詳細資訊,請參閱私用組件

應用程式執行時,Windows 會使用其資訊清單中的組件資訊,以搜尋及載入相對應的並存組件。如果隔離之應用程式指定組件相依性,則作業系統會先在 WinSxS 資料夾的共用組件當中搜尋這個組件。如果找不到必要的組件,則作業系統會搜尋安裝在應用程式目錄結構之資料夾內的私用組件。如需詳細資訊,請參閱組件搜尋序列

變更相依性

部署應用程式之後,可藉由修改發行者組態檔應用程式組態檔來變更並存組件相依性。發行者組態檔又稱為發行者原則檔,是一個 XML 檔案,會全面將應用程式和組件從某一並存組件版本重新導向至相同組件的另一個版本。如果遇到部署特定並存組件的錯誤修正或安全性修正,而且這個組件的發行者要將所有應用程式重新導向以使用新版本組件的這種情況,就可以善用變更相依性的方式來做。應用程式組態檔是一個 XML 檔案,會將某特定應用程式從某一並存組件版本重新導向至相同組件的另一個版本,而且可以用來為特定的應用程式重新導向,以使用全域發行者組態檔中所定義的版本以外的並存組件版本。如需詳細資訊,請參閱組態

Visual C++ 程式庫

在 Visual C++ 2005 中,像 ATL、MFC、CRT、Standard C++、OpenMP 和 MSDIA 這樣的程式庫都是以共用並存組件的形式部署至原生組件快取。根據預設,以 Visual C++ 2005 建置的所有應用程式都是以最終二進位檔中內嵌資訊清單的方式建置而成,資訊清單會描述這個二進位檔對於 Visual C++ 程式庫的相依性。若要了解 Visual C++ 應用程式資訊清單的產生方式,請參閱了解 C/C++ 程式的資訊清單產生過程

請參閱

其他資源

建置 C/C++ 隔離應用程式和並存組件