Dela via


Regasm.exe (verktyget för sammansättningsregistrering)

Verktyget Sammansättningsregistrering läser metadata i en sammansättning och lägger till nödvändiga poster i registret, vilket gör att COM-klienter kan skapa .NET Framework-klasser transparent. När en klass har registrerats kan alla COM-klienter använda den som om klassen var en COM-klass. Klassen registreras bara en gång när sammansättningen är installerad. Instanser av klasser i sammansättningen kan inte skapas från COM förrän de faktiskt har registrerats.

Om du vill köra verktyget använder du Visual Studio Developer Command Prompt eller Visual Studio Developer PowerShell.

Skriv följande vid kommandotolken:

Syntax

regasm assemblyFile [options]

Parametrar

Parameter Description
assemblyFile Sammansättningen som ska registreras med COM.
Alternativ Description
/codebase Skapar en Codebase-post i registret. Codebase-posten anger filsökvägen för en sammansättning som inte är installerad i den globala sammansättningscacheminnet. Ange inte det här alternativet om du senare ska installera sammansättningen som du registrerar i den globala sammansättningscacheminnet. Vi rekommenderar starkt argumentet assemblyFile som du anger med alternativet /codebase vara en stark namngiven sammansättning.
/registrerad Anger att det här verktyget endast refererar till typbibliotek som redan har registrerats.
/asmpath:directory Anger en katalog som innehåller sammansättningsreferenser. Måste användas med alternativet /regfile .
/nologo Undertrycker microsofts startbanderoll.
/regfile [: regFile] Genererar den angivna .reg filen för sammansättningen, som innehåller de registerposter som behövs. Om du anger det här alternativet ändras inte registret. Du kan inte använda det här alternativet med alternativen /u eller /tlb .
/tyst eller /s Undertrycker visning av lyckade meddelanden.
/tlb [: typeLibFile] Genererar ett typbibliotek från den angivna sammansättningen som innehåller definitioner av de tillgängliga typer som definierats i sammansättningen.
/avregistrera eller /u Avregistrerar de krea tabellklasser som finns i assemblyFile. Om du utelämnar det här alternativet kan Regasm.exe registrera de krea tabellklasser som finns i sammansättningen.
/mångordig Anger utförligt läge. visar en lista över alla refererade sammansättningar som ett typbibliotek måste genereras för när det anges med alternativet /tlb .
/? eller /help Visar kommandosyntax och alternativ för verktyget.

Kommentar

De Regasm.exe kommandoradsalternativen är skiftlägesokänsliga. Du behöver bara ange tillräckligt med alternativ för att unikt identifiera det. Till exempel motsvarar /n /nologo och /t: outfile.tlb motsvarar /tlb: outfile.tlb.

Kommentarer

Du kan använda alternativet /regfile för att generera en .reg fil som innehåller registerposterna i stället för att göra ändringarna direkt i registret. Du kan uppdatera registret på en dator genom att importera .reg-filen med verktyget Registereditorn (Regedit.exe). Den .reg filen innehåller inga registeruppdateringar som kan göras av användardefinierade registerfunktioner. Alternativet /regfile genererar endast registerposter för hanterade klasser. Det här alternativet genererar inte poster för TypeLibIDs eller InterfaceIDs.

När du anger alternativet /tlb genererar och registrerar Regasm.exe ett typbibliotek som beskriver de typer som finns i sammansättningen. Regasm.exe placerar de genererade typbiblioteken i den aktuella arbetskatalogen eller katalogen som angetts för utdatafilen. Om du genererar ett typbibliotek för en sammansättning som refererar till andra sammansättningar kan flera typbibliotek genereras samtidigt. Du kan använda typbiblioteket för att ange typinformation till utvecklingsverktyg som Visual Studio. Använd inte alternativet /tlb om den sammansättning som du registrerar har skapats av typbiblioteksimportören (Tlbimp.exe). Du kan inte exportera ett typbibliotek från en sammansättning som har importerats från ett typbibliotek. Att använda alternativet /tlb har samma effekt som att använda typbiblioteksexportören (Tlbexp.exe) och Regasm.exe, med undantag för att Tlbexp.exe inte registrerar typbiblioteket som skapas. Om du använder alternativet /tlb för att registrera ett typbibliotek kan du använda alternativet /tlb med alternativet /unregister för att avregistrera typbiblioteket. Om du använder de två alternativen tillsammans avregistreras typbiblioteket och gränssnittsposterna, vilket kan rensa registret avsevärt.

När du registrerar en sammansättning för användning av COM lägger Regasm.exe till poster i registret på den lokala datorn. Mer specifikt skapar den versionsberoende registernycklar som gör att flera versioner av samma sammansättning kan köras sida vid sida på en dator. Första gången en sammansättning registreras skapas en nyckel på den översta nivån för sammansättningen och en unik undernyckel skapas för den specifika versionen. Varje gång du registrerar en ny version av sammansättningen skapar Regasm.exe en undernyckel för den nya versionen.

Tänk dig till exempel ett scenario där du registrerar den hanterade komponenten, myComp.dll version 1.0.0.0 för användning av COM. Senare registrerar du myComp.dll version 2.0.0.0. Du avgör att alla COM-klientprogram på datorn använder myComp.dll version 2.0.0.0 och du bestämmer dig för att avregistrera myComponent.dll version 1.0.0.0. Med det här registerschemat kan du avregistrera myComp.dll version 1.0.0.0 eftersom endast undernyckeln version 1.0.0.0 tas bort.

När du har registrerat en sammansättning med hjälp av Regasm.exe kan du installera den i den globala sammansättningscacheminnet så att den kan aktiveras från alla COM-klienter. Om sammansättningen bara ska aktiveras av ett enda program kan du placera den i programmets katalog. Alternativet /codebase är ett alternativ till att använda den globala sammansättningscachen. Platsen för sammansättningen under registreringen registreras dock globalt och aktiveringen misslyckas om sammansättningen flyttas. Om sammansättningen inte hittas genom avsökning läser alternativet /codebase in sammansättningen i en inläsningskontext som innehåller ytterligare överväganden som beskrivs i Assembly.LoadFrom.

Exempel

Följande kommando registrerar alla offentliga klasser som finns i myTest.dll.

regasm myTest.dll

Följande kommando genererar filen myTest.reg, som innehåller alla nödvändiga registerposter. Det här kommandot uppdaterar inte registret.

regasm myTest.dll /regfile:myTest.reg

Följande kommando registrerar alla offentliga klasser i myTest.dlloch genererar och registrerar typbiblioteket myTest.tlb, som innehåller definitioner av alla offentliga typer som definierats i myTest.dll.

regasm myTest.dll /tlb:myTest.tlb

Se även