組件註冊工具 (Regasm.exe)

組件註冊工具可以讀取組件 (Assembly) 內的中繼資料 (Metadata),並加入必要的項目至登錄中,可允許 COM 用戶端無障礙地建立 .NET Framework 類別。一旦註冊類別之後,任何 COM 用戶端都可以使用它,如同它是 COM 類別。當安裝組件時,只會註冊類別一次。在實際註冊類別之後,才能從 COM 建立組件內類別的執行個體 (Instance)。

regasm assemblyFile [options]
引數 說明
assemblyFile 要以 COM 註冊的組件。
選項 說明
/codebase 在登錄中建立一個基礎碼項目。基礎碼項目會指定未安裝於全域組件快取中之組件的檔案路徑。如果您將接著安裝要註冊到全域組件快取中的組件,就應該指定這個選項。您使用 /codebase 選項指定的 assemblyFile 引數必須是強式名稱的組件
/help 顯示工具的命令語法和選項。
/nologo 隱藏 Microsoft 程式啟始資訊顯示。
/regfile [:regFile] 產生組件的指定 .reg 檔,它包含了所需的登錄項目。指定這個選項並不會變更登錄。您不能將這個選項與 /u/tlb 選項一起使用。
/silent/s 隱藏成功訊息的顯示。
/tlb [:typeLibFile] 從指定的組件中產生型別程式庫,包含在組件內所定義可存取型別的定義。
/unregister/u 移除註冊 assemblyFile 中所找到的可建立的類別。省略這個選項會造成 Regasm.exe 註冊組件中可建立的類別。
/verbose 指定詳細資訊模式;當與 /tlb 選項一起指定時, 顯示需要產生型別程式庫的任何參考組件的清單。
/? 顯示工具的命令語法和選項。

注意   Regasm.exe 命令列選項是不區分大小寫的。您只需要提供足夠的選項來唯一地識別它。例如,/n 等同於 /nologo,而 **/t:**outfile.tlb 等同於 **/tlb:**outfile.tlb。

備註

您可以使用 /regfile 選項來產生包含登錄項目的 .reg 檔,而非直接變更到登錄。您可以使用登錄編輯器工具 (Regedit.exe) 匯入 .reg 檔,來更新電腦上的登錄。請注意 .reg 檔並沒有包含任何可以由使用者定義的註冊功能所處理的登錄更新。

當您指定 /tlb 選項時,Regasm.exe 會產生並註冊型別程式庫,這個型別程式庫是描述組件中所找到的型別。Regasm.exe 會將產生的型別程式庫放置在目前的工作目錄或指定給輸出檔的目錄。為參考其他組件的組件產生型別程式庫可能導致一次產生多個型別程式庫。您可以使用型別程式庫來提供型別資訊給 Visual Studio .NET 這類的開發工具。如果您要註冊的組件是由型別程式庫匯入工具 (Tlbimp.exe) 產生的,您就不應該使用 /tlb 選項。您無法從已經自型別程式庫匯入的組件中匯出型別程式庫。使用 /tlb 選項與使用型別程式庫匯出工具 (Tlbexp.exe) 和 Regasm.exe 的效果相同,除了 Tlbexp.exe 無法註冊它所產生的型別資料庫之外。

當您註冊 COM 要使用的組件時,Regasm.exe 會將項目加入至本機電腦上的登錄。更精確地說,它會建立與版本相關的登錄機碼,允許相同組件之多個版本在電腦上並存執行。組件第一次註冊時,會針對組件建立一個最上層機碼,並針對特定版本建立一個唯一子機碼 (Subkey)。每次您註冊新的組件版本時,Regasm.exe 就會為這個新的版本建立一個子機碼。

例如,考慮一下這個案例:您註冊 Managed 元件 myComp.dll 1.0.0.0 版以供 COM 使用。之後,您又註冊 myComp.dll 2.0.0.0 版。您決定電腦上所有的 COM 用戶端應用程式都使用 myComp.dll 2.0.0.0 版,並決定移除註冊 myComponent.dll 1.0.0.0 版。這項登錄配置允許您移除註冊 myComp.dll 1.0.0.0 版,因為只有 1.0.0.0 版的子機碼被移除。

使用 Regasm.exe 註冊組件之後,您可以將它安裝在全域組件快取中,以便可以從任何 COM 用戶端啟動它。如果組件將只會由單一應用程式啟動,您可以將它放置到該應用程式的目錄。

範例

下列命令會註冊所有包含在 myTest.dll 中的公用類別。

regasm myTest.dll

下列命令會產生含有所有必要登錄項目的 myTest.reg 檔案。這個命令不會更新登錄。

regasm myTest.dll /regfile:myTest.reg

下列命令會註冊所有包含在 myTest.dll 檔中的的公用類別,並且產生和註冊 myTest.tlb 型別程式庫,它包含所有在 myTest.dll 中定義的公用型別定義。

regasm myTest.dll /tlb:myTest.tlb

請參閱

.NET Framework 工具 | 型別程式庫匯出工具 (Tlbexp.exe) | 型別程式庫匯入工具 (TlbImp.exe) | 使用 COM 註冊組件