Regasm.exe (nástroj registrace sestavení)
Nástroj Assembly Registration načte metadata v rámci sestavení a přidá nezbytné položky registru, které umožní klientům modelu COM transparentní vytvoření tříd rozhraní .NET Framework. Jakmile je třída zaregistrována, může ji libovolný klient COM použít jako třídu COM. Třída je registrována pouze jednou, při instalaci sestavení. Instance tříd z modelu COM v rámci sestavení nelze vytvořit, dokud nedojde k jejich registraci.
Ke spuštění nástroje použijte Visual Studio Developer Command Prompt nebo Visual Studio Developer PowerShell.
Syntaxe
regasm assemblyFile [options]
Parametry
Parametr | Popis |
---|---|
assemblyFile | Sestavení, která mají být registrována pomocí modelu COM. |
Možnost | Popis |
---|---|
/codebase |
Vytvoří položku základu kódu v registru. Položka Základ kódu určuje cestu k souboru pro sestavení, které není nainstalováno v globální mezipaměti sestavení. Tuto možnost nezadávejte, pokud následně nainstalujete sestavení, které registrujete do globální mezipaměti sestavení. Důrazně se doporučuje argument assemblyFile , který zadáte s /codebase možností být sestavení se silným názvem. |
/registered |
Určuje, že tento nástroj bude odkazovat pouze na knihovny typů, které již byly zaregistrovány. |
/asmpath:directory |
Určuje adresář obsahující odkazy na sestavení. Musí se použít s /regfile možností. |
/nologo |
Potlačí zobrazení úvodního nápisu společnosti Microsoft. |
/regfile [: regFile] |
Generuje soubor .reg určený pro sestavení, která obsahují potřebné položky registru. Použití této možnosti nezmění registr. Tuto možnost nelze použít s možnostmi /u nebo /tlb možnostmi. |
/silent nebo /s |
Potlačí zobrazování zpráv o úspěšném dokončení. |
/tlb [: typeLibFile] |
Ze zadaného sestavení vytvoří knihovnu typů obsahující definice dostupných typů definovaných v rámci sestavení. |
/unregister nebo /u |
Zruší registraci creatable tříd nalezených v assemblyFile. Vynechání této možnosti způsobí, že nástroj Regasm.exe zaregistruje vytvořitelné třídy v rámci sestavení. |
/verbose |
Určuje podrobný režim; zobrazí seznam všech odkazovaných sestavení, pro která je potřeba vygenerovat knihovnu typů při zadání s /tlb možností. |
/? nebo /help |
Zobrazí syntaxi příkazu a možnosti nástroje. |
Poznámka:
Možnosti příkazového řádku nástroje Regasm.exe nerozlišují malá a velká písmena. Pro jednoznačnou identifikaci je potřeba zadat dostatek parametrů. /n
Například je ekvivalentní /nologo
a /t: outfile.tlb
je ekvivalentní ./tlb: outfile.tlb
Poznámky
Tuto možnost můžete použít /regfile
k vygenerování .reg souboru, který obsahuje položky registru, namísto provedení změn přímo v registru. Registr lze na počítači aktualizovat importováním souboru .reg pomocí nástroje Editor registru (Regedit.exe). Soubor .reg neobsahuje žádné aktualizace registru, které lze provádět pomocí uživatelem definovaných funkcí registru. Možnost /regfile
generuje pouze položky registru pro spravované třídy. Tato možnost nevygeneruje TypeLibID
ani InterfaceID
nezadává položky.
Když zadáte /tlb
možnost, Regasm.exe vygeneruje a zaregistruje knihovnu typů popisující typy nalezené v sestavení. Nástroj Regasm.exe umístí vytvořenou knihovnu typů do aktuálního pracovního adresáře nebo do adresáře určeného pro výstupní soubor. Vytváření knihovny typů pro sestavení, které odkazuje na jiné sestavení, může způsobit vytvoření několika knihoven typů najednou. Knihovnu typů můžete použít k poskytnutí informací o typu vývojových nástrojů, jako je Visual Studio. Tuto možnost nepoužívejte /tlb
, pokud sestavení, které registrujete, vytvořil nástroj Type Library Importer (Tlbimp.exe). Knihovnu typů nelze exportovat ze sestavení, které bylo importováno z knihovny typů. /tlb
Použití této možnosti má stejný účinek jako použití exportéru knihovny typů (Tlbexp.exe) a Regasm.exe s výjimkou, že Tlbexp.exe neregistruje knihovnu typů, kterou vytváří. Pokud tuto možnost použijete /tlb
k registraci knihovny typů, můžete pomocí /tlb
možnosti /unregister
zrušit registraci knihovny typů. Použitím obou možností společně dojde ke zrušení registrace knihovny typů a položek rozhraní, čímž lze značně pročistit registr.
Při registraci sestavení pro použití modelem COM nástroj Regasm.exe přidá položky do registru místního počítače. Přesněji řečeno vytvoří klíče registru závislé na verzi, které dovolují v počítači paralelně spustit více verzí stejného sestavení. Při prvním registraci sestavení se pro sestavení vytvoří jeden klíč nejvyšší úrovně a pro konkrétní verzi se vytvoří jedinečný podklíč. Při každé registraci nové verze sestavení nástroj Regasm.exe vytvoří podklíč pro novou verzi.
Jako příklad lze uvést registraci spravované komponenty, myComp.dll, verze 1.0.0.0 pro použití modelem COM. Později zaregistrujete myComp.dll verze 2.0.0.0. Je možné určit, že všechny klientské aplikace modelu COM v počítači používají myComp.dll verze 2.0.0.0 a rozhodnout o zrušení registrace myComponent.dll verze 1.0.0.0. Toto schéma registru umožňuje zrušit registraci myComp.dll verze 1.0.0.0, protože je odebrán pouze podklíč verze 1.0.0.0.
Po registraci sestavení pomocí Regasm.exe ho můžete nainstalovat do globální mezipaměti sestavení, aby bylo možné ho aktivovat z libovolného klienta MODELU COM. Pokud bude sestavení aktivováno jednou aplikací, je možné je umístit do adresáře dané aplikace. Použití této /codebase
možnosti je alternativou k použití globální mezipaměti sestavení. Umístění sestavení během registrace se však zaznamená globálně a aktivace selže, pokud se sestavení přesune. Pokud sestavení není nalezeno prostřednictvím sondování, /codebase
možnost načte sestavení do kontextu načtení z kontextu, který obsahuje další faktory popsané v Assembly.LoadFrom.
Příklady
Následující příkaz zaregistruje všechny veřejné třídy obsažené v myTest.dll
.
regasm myTest.dll
Následující příkaz vygeneruje soubor myTest.reg
, který obsahuje všechny potřebné položky registru. Tento příkaz neprovede aktualizaci registru.
regasm myTest.dll /regfile:myTest.reg
Následující příkaz zaregistruje všechny veřejné třídy obsažené v myTest.dll
, a vygeneruje a zaregistruje knihovnu myTest.tlb
typů , která obsahuje definice všech veřejných typů definovaných v myTest.dll
.
regasm myTest.dll /tlb:myTest.tlb