Share via


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

應用程式組態檔 (Application Configuration File) 讓 COM 應用程式可以繫結至特定的 Managed 元件,並指定由 Runtime 的哪一個版本來執行元件。 COM 應用程式開發人員可以建立 .NET Framework 的應用程式組態檔,並以他們的應用程式來部署組態檔。

預設載入行為

如果 Unmanaged 應用程式沒有應用程式組態檔,對於用來載入元件的執行階段版本判斷如下:

  • 如果元件是以 .NET Framework 4 版 (含) 以後版本建立,則會以當初用來建立元件的執行階段來載入元件。

  • 如果元件是以舊版 .NET Framework 建立,則會以電腦上所安裝之早於第 4 版的最新版本執行階段來載入元件。 例如,如果元件是以 .NET Framework 1.1 版建立,且電腦上已安裝三個版本的 .NET Framework (.NET Framework 1.1、.NET Framework 3.5 SP1 和 .NET Framework 4),則會以 .NET Framework 3.5 SP1 載入元件。 這是 .NET Framework 4 之前版本的預設行為。

這個載入行為會影響在相同處理序中並存載入的元件。 .NET Framework 4 的執行階段可以與舊版 .NET Framework 的執行階段在同處理序執行。 請參閱同處理序並存執行

指定 Runtime 版本

如果預設載入行為不能滿足 COM 應用程式的需求,您可以使用應用程式組態檔中的 <supportedRuntime> 項目,指定應用程式所需的執行階段版本。 例如,您可以指定載入 .NET Framework 1.1 版的 Runtime 版本 1.1.4322。 如需相關說明,請參閱以 .NET Framework 版本為目標

注意事項注意事項

由可延伸的主應用程式 (Host) (例如 Microsoft Internet Explorer 或 Microsoft Office) 裝載的 COM 應用程式無法控制載入的執行階段版本。

如果您有元件是同時以 .NET Framework 4 和舊版 .NET Framework 建立,您必須列出所有版本做為支援的執行階段,因為預設載入行為不會使用 .NET Framework 4 載入較舊的元件。 若要強制以 .NET Framework 4 載入較舊的元件,請將組態檔中 <startup> 項目的 useLegacyV2RuntimeActivationPolicy 屬性設為 true。 這會還原為 .NET Framework 4 之前版本的預設載入行為,也就是使用支援的最新 .NET Framework 版本。

指定組件版本

若沒有應用程式組態檔,Runtime 會載入註冊在 Windows 登錄中的最新版本組件,其中包含由 COM 所啟動的型別。 您可以使用應用程式組態檔中的 <bindingRedirect> 項目,導向應用程式繫結至稍早的組件版本。 如需相關說明,請參閱重新導向組件版本

藉由在 <dependentAssembly> 項目中包含多個 **<bindingRedirect>**項目,您可以重新導向一個以上的組件版本。

請參閱

參考

<startup> 項目

<supportedRuntime> 項目

<bindingRedirect> 項目

概念

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

與版本相關的登錄機碼

套用與版本相關的屬性

COM 元件和並存執行

重新導向組件版本

其他資源

COM Interop 的並存執行