/* from: http://msdn.microsoft.com/zh-cn/library/tzat5yw6(VS.80).aspx */
程序集註冊工具讀取程序集中的元數據,並將所需的項添加到註冊表中。註冊表允許 COM 客戶程序以透明方式創建 .NET Framework 類。類一經註冊,任何 COM 客戶程序都可以使用它,就好像該類是一個 COM 類。類僅在安裝程序集時註冊一次。程序集中的類實例直到被實際註冊時,才能從 COM 中創建。
參數
參數 | 說明 |
---|---|
assemblyFile |
要向 COM 註冊的程序集。 |
選項 | 說明 |
---|---|
/codebase |
在註冊表中創建一個 Codebase 項。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 選項只爲託管類發出註冊表項。此選項不爲 TypeLibID 或 InterfaceID 發出註冊表項。
指定 /tlb 選項時,Regasm.exe 生成並註冊一個類型庫,對在程序集中找到類型進行描述。Regasm.exe 將生成的類型庫放到當前的工作目錄中或爲輸出文件指定的目錄中。爲引用其他程序集的程序集生成類型庫可能導致同時生成幾個類型庫。可使用類型庫向開發工具(如 Visual Studio 2005)提供類型信息。如果正在註冊的程序集是由類型庫導入程序 (Tlbimp.exe) 產生的,則不應使用 /tlb 選項。如果程序集是從類型庫導入的,則不能從它導出類型庫。除了類型庫導出程序 (Tlbexp.exe) 不能註冊它產生的類型庫外,使用 /tlb 選項同使用 Tlbexp.exe 和 Regasm.exe 的效果相同。如果使用 /tlb 選項註冊某個類型庫,則可將 /tlb 選項和 /unregister 選項一起使用,以註銷該類型庫。將兩個選項一起使用將註銷類型庫和接口項,這樣可較大程度地清理註冊表。
當您註冊一個程序集供 COM 使用時,Regasm.exe 會在本地計算機的註冊表中添加一些項。更具體地說就是,它創建與版本相關的註冊表項,這些項允許在一臺計算機上並行運行同一程序集的多個版本。第一次註冊程序集時,會爲該程序集創建一個頂級項併爲這個程序集版本創建一個唯一的子項。每次註冊該程序集的新版本時,Regasm.exe 都爲新版本創建一個子項。
例如,假設您要註冊一個版本爲 1.0.0.0 的託管組件 myComp.dll 供 COM 使用。後來,您又註冊版本爲 2.0.0.0 的 myComp.dll。您確定計算機上的所有 COM 客戶端應用程序都要使用 2.0.0.0 版本的 myComp.dll,並且決定註銷 myComponent.dll 版本 1.0.0.0。此註冊表方案允許您註銷 myComp.dll 版本 1.0.0.0,這是因爲註銷操作只移除 1.0.0.0 版本子項。
使用 Regasm.exe 註冊程序集之後,可以將該程序集安裝在全局程序集緩存中,以便可以從任何 COM 客戶端激活它。如果程序集僅準備由單個應用程序激活,則可以將它放到該應用程序的目錄中。