Share via


COM 應用程式的執行階段初始設定

在 COM 應用程式可以啟動 Managed 型別之前,Common Language Runtime 必須載入記憶體。 雖然 COM Interop 並未真正載入 Runtime (是由 Runtime 啟始程式碼載入),但 COM 應用程式可以對準特定的 Runtime 版本。

下列因素決定 Runtime 版本:

  • COM 應用程式可以在應用程式組態檔中指定 Runtime 版本。 如需詳細資訊,請參閱設定並存執行的 COM 應用程式

  • 藉由可延伸的主應用程式,例如 Microsoft Internet Explorer 或 Microsoft Office,可以將 Runtime 先載入記憶體中。 外掛程式 COM 應用程式使用主應用程式載入的 Runtime 來執行 Managed 元件。

  • 當需要嚴格控制時,COM 應用程式可以藉由叫用 ICLRMetaHostPolicy::GetRequestedRuntime 方法 (從 mscoree.dll 匯出),以程式設計方式預先載入 (Preload) 特定的執行階段版本。 或者,應用程式也可以藉由叫用 GetRequestedRuntimeVersionForCLSID 函式 (也從 mscoree.dll 匯出) 並將傳回值傳遞給 CorBindToRuntimeHost 函式,根據啟動的 COM 類別,以不同的執行階段版本為目標。

如果上述因素都不存在,啟始程式碼就會根據設定並存執行的 COM 應用程式中所描述的預設載入行為,載入執行階段。

型別解析

如果包含要啟動型別的多版本組件存在於 Windows 登錄中,根據預設 Runtime 會載入其最新的版本。

如果 COM 應用程式擁有應用程式組態檔,可以將繫結重新導向至特定組件版本的型別中。 如需詳細資訊,請參閱設定並存執行的 COM 應用程式

注意事項注意事項

.NET Framework 1.0 版安裝的元件中沒有與版本相關的登錄機碼。針對這些元件,COM 只能在電腦上使用唯一的型別版本。

請參閱

概念

與版本相關的登錄機碼

設定並存執行的 COM 應用程式

套用與版本相關的屬性

COM 元件和並存執行

其他資源

COM Interop 的並存執行