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.

V příkazovém řádku zadejte následující:

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ákladu kódu určuje cestu k souboru pro sestavení, které není nainstalováno v globální mezipaměti sestavení (GPA). Tuto možnost nezadávejte, pokud následně nainstalujete sestavení, které registrujete, do globální mezipaměti sestavení (GPA). Důrazně doporučujeme, aby argument assemblyFile , který zadáte s možností /codebase , byl sestavení se silným názvem.
/Registrované 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 možností /regfile .
/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 .
/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í.
/Podrobné Určuje režim podrobného režimu; zobrazí seznam všech odkazovaných sestavení, pro která je třeba vygenerovat knihovnu typů, pokud je zadána možnost /tlb .
/? 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ů. Například /n je ekvivalentem k /nologo a /t:outfile.tlb odpovídá /tlb:outfile.tlb.

Poznámky

Možnost /regfile můžete použít k vygenerování souboru .reg, který obsahuje položky registru, místo provádění 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é mohou být provedeny uživatelem definované funkce registru. Možnost /regfile vygeneruje pouze položky registru pro spravované třídy. Tato možnost negeneruje položky pro TypeLibIDs nebo InterfaceIDs.

Když zadáte možnost /tlb , 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 poskytování informací o typu do vývojových nástrojů, jako je Visual Studio. Možnost /tlb nepoužívejte, pokud sestavení, které registrujete, bylo vytvořeno nástrojem Type Library Importer (Tlbimp.exe). Knihovnu typů nelze exportovat ze sestavení, které bylo importováno z knihovny typů. Použití možnosti /tlb 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 k registraci knihovny typů použijete možnost /tlb , můžete k zrušení registrace knihovny typů použít možnost /tlb s možností /unregister . 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í 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í (GMA), 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í možnosti /codebase je alternativou k použití globální mezipaměti sestavení; umístění sestavení během registrace je však zaznamenáno globálně a aktivace selže, pokud je sestavení přesunuto. Pokud sestavení není nalezeno pomocí sondy, možnost /codebase načte sestavení v kontextu načtení z kontextu, který obsahuje další důležité informace zdokumentované v Assembly.LoadFrom.

Příklady

Následující příkaz zaregistruje všechny veřejné třídy obsažené v myTest.dllnástroji .

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.dllnástroji a vygeneruje a zaregistruje knihovnu myTest.tlbtypů , která obsahuje definice všech veřejných typů definovaných v myTest.dllnástroji .

regasm myTest.dll /tlb:myTest.tlb

Viz také