共用方式為


建置多檔案組件

您可以使用命令列編譯器或是使用 Managed Extensions for C++ 的 Visual Studio .NET 來建立多檔案組件。組件的檔案必須包含組件資訊清單。啟動應用程式的組件必須同時含有進入點,例如 Main 或 WinMain 方法。

例如,假設您的應用程式含有兩個程式碼模組 Client.cs 和 Stringer.cs,Stringer.cs 會建立供 Client.cs 中程式碼參考的 myStringer 命名空間。Client.cs 含有 Main 方法,該方法為應用程式的進入點。在這個範例中,您將編譯兩個程式碼模組,然後建立第三個可啟動應用程式的檔案,其中含有組件資訊清單。組件資訊清單同時參考 ClientStringer 模組。

**注意   **即使組件擁有多重程式碼模組,多檔案組件仍可僅擁有一個進入點。

您可能想要建立多檔案組件,原因如下:

  • 您想要結合使用不同語言撰寫的模組。這是建立多檔案組件最常見的理由。

  • 您想要將很少使用的型別放入只有在需要時才下載的模組中,以便最佳化應用程式的下載。

    **注意   **如果您要建立將使用 <object> 標記和 Microsoft Internet Explorer 下載的應用程式,那麼您必須建立多檔案組件。在這個案例中,您將建立一個有別於您的程式碼模組的檔案,該檔案中僅含有組件資訊清單。Internet Explorer 會先下載組件資訊清單,然後建立背景工作執行緒 (Worker Thread) 來下載所有其他必要的模組或組件。當含有組件資訊清單的檔案下載完成後,Internet Explorer 將不會回應使用者輸入。如果含有組件資訊清單的檔案越小,Internet Explorer 不回應的時間就越短。

  • 您可以結合數個開發人員所撰寫的程式碼模組。雖然每個開發人員都可以將每個程式碼模組編譯到一個組件裡,這個動作會使某些型別公開地公開出來,但如果模組分散放置到多個檔案組件裡,這些型別就不會公開出來。

建立組件後,您可以簽名含有組件資訊清單的檔案 (並藉此可簽名組件),或者您可以為檔案 (和組件) 指定強式名稱並將它放入全域組件快取。

若要建立多檔案組件

  1. 將所有檔案編譯為程式碼模組,該檔案所包含的命名空間將由組件的其他模組參考。程式碼模組的預設副檔名為 .netmodule。例如,如果稱為 Stringer 的檔案建立稱為 myStringer 的命名空間 (在 Client 檔案程式碼中參考),應先將 Stringer 編譯成程式碼模組。

  2. 使用必要的編譯器選項來編譯其他所有模組,以便指出程式碼中所參考的其他模組。

  3. 使用組件連結器 (Al.exe) 來建立輸出檔案,其中含有組件資訊清單。這個檔案含有所有模組的參考資訊或者是部分組件的資源。資訊清單可作為應用程式的可執行檔。

    **注意   **Visual Studio .NET IDE for C# 和 Visual Basic 只能用來建立單一檔案組件。如果您想要建立多檔案組件,必須使用命令列編譯器或是使用 Managed Extensions for C++ 的 Visual Studio .NET。

下個章節包含多檔案組件範例,用來說明這三個步驟。

請參閱

使用組件設計程式