組件登錄工具 (Regasm.exe)
組件註冊工具可以讀取組件內的中繼資料 (Metadata),並加入必要的項目至登錄中,可允許 COM 用戶端無障礙地建立 .NET Framework 類別。一旦註冊類別之後,任何 COM 用戶端都可以使用它,如同它是 COM 類別。當安裝組件時,只會註冊類別一次。在實際註冊類別之後,才能從 COM 建立組件內類別的執行個體。
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
請參閱
參考
.NET Framework 工具
型別程式庫匯出工具 (Tlbexp.exe)
型別程式庫匯入工具 (TlbImp.exe)
SDK 命令提示字元