Delen via


Regasm.exe (Assembly Registration Tool)

Het hulpprogramma Assembly-registratie leest de metagegevens in een assembly en voegt de benodigde vermeldingen toe aan het register, waardoor COM-clients .NET Framework-klassen transparant kunnen maken. Zodra een klasse is geregistreerd, kan elke COM-client deze gebruiken alsof de klasse een COM-klasse is. De klasse wordt slechts eenmaal geregistreerd wanneer de assembly is geïnstalleerd. Exemplaren van klassen binnen de assembly kunnen niet worden gemaakt vanuit COM totdat ze daadwerkelijk zijn geregistreerd.

Als u het hulpprogramma wilt uitvoeren, gebruikt u de Visual Studio Developer-opdrachtprompt of Visual Studio Developer PowerShell.

Syntaxis

regasm assemblyFile [options]

Parameters

Parameter Description
assemblyFile De assembly die moet worden geregistreerd bij COM.
Optie Omschrijving
/codebase Hiermee maakt u een Codebase-vermelding in het register. De Codebase-vermelding geeft het bestandspad op voor een assembly die niet is geïnstalleerd in de algemene assemblycache. Geef deze optie niet op als u vervolgens de assembly installeert die u registreert in de algemene assemblycache. Het wordt sterk aanbevolen het argument assemblyFile dat u opgeeft met de /codebase optie een sterk benoemde assembly te zijn.
/registered Hiermee geeft u op dat dit hulpprogramma alleen verwijst naar typebibliotheken die al zijn geregistreerd.
/asmpath:directory Hiermee geeft u een map met assemblyverwijzingen op. Moet worden gebruikt met de /regfile optie.
/nologo Onderdrukt de weergave van de opstartbanner van Microsoft.
/regfile [: regFile] Hiermee genereert u het opgegeven .reg-bestand voor de assembly, die de benodigde registervermeldingen bevat. Als u deze optie opgeeft, wordt het register niet gewijzigd. U kunt deze optie niet gebruiken met de /u of /tlb opties.
/silent of /s Onderdrukt de weergave van geslaagde berichten.
/tlb [: typeLibFile] Hiermee genereert u een typebibliotheek van de opgegeven assembly met definities van de toegankelijke typen die in de assembly zijn gedefinieerd.
/unregister of /u De registratie van de creatable-klassen in assemblyFile ongedaan maken. Als u deze optie weglaat, worden Regasm.exe de creatable-klassen in de assembly geregistreerd.
/verbose Hiermee geeft u uitgebreide modus; geeft een lijst weer van alle assembly's waarnaar wordt verwezen waarvoor een typebibliotheek moet worden gegenereerd, wanneer deze is opgegeven met de /tlb optie.
/? of /help Geeft de opdrachtsyntaxis en opties voor het hulpprogramma weer.

Notitie

De Regasm.exe opdrachtregelopties zijn niet hoofdlettergevoelig. U hoeft alleen voldoende van de optie te bieden om deze uniek te identificeren. Is bijvoorbeeld /n gelijk aan /nologo en /t: outfile.tlb is gelijk aan /tlb: outfile.tlb.

Opmerkingen

U kunt de /regfile optie gebruiken om een .reg-bestand te genereren dat de registervermeldingen bevat in plaats van de wijzigingen rechtstreeks in het register aan te brengen. U kunt het register op een computer bijwerken door het .reg-bestand te importeren met het hulpprogramma Registereditor (Regedit.exe). Het .reg-bestand bevat geen registerupdates die kunnen worden uitgevoerd door door de gebruiker gedefinieerde registerfuncties. De /regfile optie verzendt alleen registervermeldingen voor beheerde klassen. Met deze optie worden geen vermeldingen verzonden TypeLibID of InterfaceID verzonden.

Wanneer u de /tlb optie opgeeft, genereert en registreert Regasm.exe een typebibliotheek waarin de typen in de assembly worden beschreven. Regasm.exe plaatst de gegenereerde typebibliotheken in de huidige werkmap of de map die is opgegeven voor het uitvoerbestand. Het genereren van een typebibliotheek voor een assembly die verwijst naar andere assembly's kan ertoe leiden dat verschillende typebibliotheken tegelijk worden gegenereerd. U kunt de typebibliotheek gebruiken om typegegevens te verstrekken aan ontwikkelhulpprogramma's zoals Visual Studio. Gebruik de /tlb optie niet als de assembly die u registreert, is geproduceerd door typebibliotheekimporteur (Tlbimp.exe). U kunt een typebibliotheek niet exporteren uit een assembly die is geïmporteerd uit een typebibliotheek. Het gebruik van de /tlb optie heeft hetzelfde effect als het gebruik van de typebibliotheekexporteur (Tlbexp.exe) en Regasm.exe, met uitzondering dat Tlbexp.exe de typebibliotheek die wordt geproduceerd niet registreert. Als u de /tlb optie gebruikt om een typebibliotheek te registreren, kunt u de /tlb optie gebruiken met de /unregister optie om de registratie van de typebibliotheek ongedaan te maken. Als u de twee opties samen gebruikt, wordt de registratie van de typebibliotheek en interfacevermeldingen ongedaan gemaakt, waardoor het register aanzienlijk kan worden opgeschoond.

Wanneer u een assembly registreert voor gebruik door COM, voegt Regasm.exe vermeldingen toe aan het register op de lokale computer. Er worden met name versieafhankelijke registersleutels gemaakt waarmee meerdere versies van dezelfde assembly naast elkaar op een computer kunnen worden uitgevoerd. De eerste keer dat een assembly wordt geregistreerd, wordt er één sleutel op het hoogste niveau gemaakt voor de assembly en wordt er een unieke subsleutel gemaakt voor de specifieke versie. Telkens wanneer u een nieuwe versie van de assembly registreert, maakt Regasm.exe een subsleutel voor de nieuwe versie.

Denk bijvoorbeeld aan een scenario waarin u het beheerde onderdeel registreert, myComp.dll, versie 1.0.0.0 voor gebruik door COM. Later registreert u myComp.dll versie 2.0.0.0. U bepaalt dat alle COM-clienttoepassingen op de computer gebruikmaken van myComp.dll versie 2.0.0.0 en u besluit de registratie van myComponent.dll versie 1.0.0.0 ongedaan te maken. Met dit registerschema kunt u de registratie van myComp.dll versie 1.0.0.0 ongedaan maken omdat alleen de subsleutel versie 1.0.0.0 wordt verwijderd.

Nadat u een assembly hebt geregistreerd met behulp van Regasm.exe, kunt u deze installeren in de globale assemblycache , zodat deze kan worden geactiveerd vanaf elke COM-client. Als de assembly alleen door één toepassing wordt geactiveerd, kunt u deze in de map van die toepassing plaatsen. Het gebruik van de /codebase optie is een alternatief voor het gebruik van de globale assemblycache. De locatie van de assembly tijdens de registratie wordt echter globaal vastgelegd en de activering mislukt als de assembly wordt verplaatst. Als de assembly niet wordt gevonden via testen, wordt de /codebase assembly geladen in een context die aanvullende overwegingen bevat die worden beschreven in Assembly.LoadFrom.

Voorbeelden

Met de volgende opdracht worden alle openbare klassen in myTest.dll.

regasm myTest.dll

Met de volgende opdracht wordt het bestand myTest.reggegenereerd, dat alle benodigde registervermeldingen bevat. Met deze opdracht wordt het register niet bijgewerkt.

regasm myTest.dll /regfile:myTest.reg

De volgende opdracht registreert alle openbare klassen in myTest.dllen genereert en registreert de typebibliotheek myTest.tlb, die definities bevat van alle openbare typen die zijn gedefinieerd in myTest.dll.

regasm myTest.dll /tlb:myTest.tlb

Zie ook