Regasm.exe (組件登錄工具)

更新:2011 年 4 月

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

這個工具會自動隨 Visual Studio 和 Windows SDK 一起安裝。 若要執行工具,建議您使用 Visual Studio 命令提示字元或 Windows SDK 命令提示字元。 這些公司可讓您輕鬆地執行工具,而不需瀏覽至安裝資料夾。 如需詳細資訊,請參閱Visual Studio 和 Windows SDK 命令提示字元

  • 如果您已經在電腦上安裝 Visual Studio:在工作列上,依序按一下 Start、All Programs、Visual Studio、Visual Studio Tools,然後按一下 Visual Studio Command Prompt。

    -或-

    如果您已經在電腦上安裝 Windows SDK:在工作列上,依序按一下 Start、All Programs、Windows SDK 的資料夾,然後按一下Command Prompt(或 CMD Shell)。

  • 在命令提示字元中輸入下列文字:

regasm assemblyFile [options]

參數

參數

描述

assemblyFile

要以 COM 註冊的組件。

選項

描述

/codebase

在登錄中建立一個程式碼基底項目。 程式碼基底項目會指定未安裝於全域組件快取中之組件的檔案路徑。 如果您將接著安裝要註冊到全域組件快取中的組件,就應該指定這個選項。 您使用 /codebase 選項指定的 assemblyFile 引數必須是強式名稱的組件

/registered

指定這個工具只會參考已註冊的型別程式庫。

/asmpath:directory

指定包含組件參考的目錄。 必須與 /regfile 選項一起使用。

/nologo

隱藏 Microsoft 程式啟始資訊顯示。

/regfile [:regFile]

產生組件的指定 .reg 檔,它包含了所需的登錄項目。 指定這個選項並不會變更登錄。 您不能將這個選項與 /u/tlb 選項一起使用。

/silent/s

隱藏成功訊息的顯示。

/tlb [:typeLibFile]

從指定的組件中產生型別程式庫,包含在組件內所定義可存取型別的定義。

/unregister/u

移除註冊 assemblyFile 中所找到的可建立的類別。 省略這個選項會造成 Regasm.exe 註冊組件中可建立的類別。

/verbose

指定詳細資訊模式;當與 /tlb 選項一起指定時,顯示需要產生型別程式庫的任何參考組件清單。

/?/help

顯示工具的命令語法和選項。

注意事項注意事項

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

備註

您可以使用 /regfile 選項來產生包含登錄項目的 .reg 檔,而非直接變更到登錄。 您可以使用登錄編輯程式工具 (Regedit.exe) 匯入 .reg 檔,來更新電腦上的登錄。 請注意 .reg 檔並沒有包含任何可以由使用者定義的註冊功能所處理的登錄更新。 請注意,/regfile 選項只會對 Managed 類別發出登錄項目。 這個選項不會發出 TypeLibID 或 InterfaceID 的項目。

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

當您註冊 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

請參閱

參考

Tlbexp.exe (型別程式庫匯出工具)

Tlbimp.exe (型別程式庫匯入工具)

Visual Studio 和 Windows SDK 命令提示字元

概念

向 COM 註冊組件

其他資源

.NET Framework 工具

變更記錄

日期

記錄

原因

2011 年 4 月

加入使用 Visual Studio 和 Windows SDK 命令提示字元的相關資訊。

資訊加強。