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.reg
gegenereerd, 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.dll
en 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