Note
本文說明.NET框架 COM 互通指引,採用舊有工具與部署模型,如 Tlbimp.exe、主要互操作組件、全域組件快取及基於登錄檔的 COM 註冊。 對於現代 .NET,請使用 COM 原始碼產生或 ComWrappers API。 欲了解更多資訊,請參閱 COM 互通。
Interop 應用程式通常包含 .NET 用戶端元件、代表不同 COM 類型連結庫的一或多個 Interop 元件,以及一或多個已註冊的 COM 元件。 Visual Studio 與 Windows SDK 提供將型別庫匯入並轉換成互操作組合語言的工具,詳見「匯入型別函式庫作為組合語言」一文。 部署 Interop 應用程式的方式有兩種:
- 透過使用內嵌互通型別:指示編譯器將互通組合的型別資訊嵌入你的執行檔中。 編譯程式只會內嵌應用程式所使用的類型資訊。 您不需要使用應用程式部署 Interop 元件。 這是建議的技術。
- 透過部署互操作組件:建立對互操作組件的標準參考。 在此情況下,Interop 元件必須與您的應用程式一起部署。 如果您採用這項技術,且未使用私人 COM 元件,請一律參考您打算納入受管理程式碼之 COM 元件作者所發行的主要 Interop 元件(PIA)。
如果您使用嵌入的 Interop 類型,部署將會變得簡單而直接。 您不需要做任何特別的事情。 本文的其餘部分說明使用應用程式部署 Interop 元件的案例。
部署互操作元件
組件可以有強式名稱。 強式命名的組件包含發行者的公钥,可以提供唯一的識別。 類型庫匯入工具 (Tlbimp.exe) 所產生的元件可以使用 /keyfile 選項由發行者簽署。 您可以將已簽署的元件安裝到全域程式集緩存中。 未簽署的元件必須以私人元件的形式安裝在用戶的電腦上。
私有組件
若要安裝要私下使用的元件,必須在同一個目錄結構中安裝包含匯入 COM 類型的應用程式可執行檔和 Interop 元件。 下圖顯示 Client1.exe 和 Client2.exe私下使用的未簽署 Interop 元件,其位於個別的應用程式目錄中。 在此範例中稱為 LOANLib.dll 的 Interop 元件會安裝兩次。
與應用程式相關聯的所有 COM 元件都必須安裝在 Windows 登錄中。 如果圖例中的 Client1.exe 和 Client2.exe 安裝在不同的計算機上,您必須在這兩部計算機上註冊 COM 元件。
共用元件
多個應用程式共用的元件應該安裝在稱為全域程式集緩存的集中式存放庫中。 .NET 用戶端可以存取與全域程式集緩存中簽署並安裝之 Interop 元件的相同複本。 如需產生和使用主要 Interop 元件的詳細資訊,請參閱 主要 Interop 元件。