Delen via


Tlbexp.exe (type bibliotheekexporteur)

De typebibliotheekexporteur genereert een typebibliotheek die de typen beschrijft die zijn gedefinieerd in een algemene taalruntime-assembly.

Dit hulpprogramma wordt automatisch geïnstalleerd met Visual Studio. Als u het hulpprogramma wilt uitvoeren, gebruikt u de Visual Studio Developer-opdrachtprompt of Visual Studio Developer PowerShell.

Typ het volgende bij de opdrachtprompt:

Syntaxis

tlbexp assemblyName [options]  

Parameters

Argument Beschrijving
assemblyName De assembly waarvoor een typebibliotheek moet worden geëxporteerd.
Optie Omschrijving
/asmpath: map Hiermee geeft u de locatie om te zoeken naar assembly's. Als u deze optie gebruikt, moet u expliciet de locaties opgeven waarnaar moet worden gezocht naar assembly's waarnaar wordt verwezen, inclusief de huidige map.

Wanneer u de optie asmpath gebruikt, zoekt de typebibliotheekexporteur niet naar een assembly in de algemene assemblycache (GAC).
/Help Geeft de opdrachtsyntaxis en opties voor het hulpprogramma weer.
/names: bestandsnaam Hiermee geeft u het hoofdlettergebruik van namen in een typebibliotheek. Het argument bestandsnaam is een tekstbestand. Elke regel in het bestand geeft het hoofdlettergebruik van één naam in de typebibliotheek op.
/nologo Onderdrukt de weergave van de opstartbanner van Microsoft.
/oldnames Dwingt Tlbexp.exe om versierde typenamen te exporteren als er een typenaamconflict is. Houd er rekening mee dat dit het standaardgedrag was in versies vóór .NET Framework versie 2.0.
/out: bestand Hiermee geeft u de naam van het type bibliotheekbestand te genereren. Als u deze optie weglaat, genereert Tlbexp.exe een typebibliotheek met dezelfde naam als de assembly (de werkelijke assemblynaam, die mogelijk niet noodzakelijkerwijs hetzelfde is als het bestand met de assembly) en een .tlb-extensie.
/stilte: warningnumber Onderdrukt de weergave van de opgegeven waarschuwing. Deze optie kan niet worden gebruikt met /silent.
/stil Onderdrukt de weergave van geslaagde berichten. Deze optie kan niet worden gebruikt met /stilte.
/tlbreference: typelibraryname Dwingt Tlbexp.exe om typebibliotheekverwijzingen expliciet op te lossen zonder het register te raadplegen. Als assembly B bijvoorbeeld verwijst naar assembly A, kunt u deze optie gebruiken om een expliciete typebibliotheekverwijzing op te geven in plaats van te vertrouwen op de typebibliotheek die is opgegeven in het register. Tlbexp.exe voert een versiecontrole uit om ervoor te zorgen dat de typebibliotheekversie overeenkomt met de assemblyversie; anders wordt er een fout gegenereerd.

Houd er rekening mee dat de tlbreference-optie nog steeds het register raadpleegt in gevallen waarin het ComImportAttribute kenmerk wordt toegepast op een interface die vervolgens door een ander type wordt geïmplementeerd.
/tlbrefpath: pad Volledig gekwalificeerd pad naar een bibliotheek met het type waarnaar wordt verwezen.
/win32 Bij het compileren op een 64-bits computer geeft deze optie aan dat Tlbexp.exe een 32-bits bibliotheek genereert.
/win64 Bij het compileren op een 32-bits computer geeft deze optie aan dat Tlbexp.exe een 64-bits bibliotheek genereert.
/breedsprakig Hiermee geeft u uitgebreide modus; geeft een lijst weer van alle assembly's waarnaar wordt verwezen waarvoor een typebibliotheek moet worden gegenereerd.
/? Geeft de opdrachtsyntaxis en opties voor het hulpprogramma weer.

Notitie

De opdrachtregelopties voor Tlbexp.exe zijn niet hoofdlettergevoelig en kunnen in elke volgorde worden opgegeven. U hoeft alleen voldoende van de optie op te geven om deze uniek te identificeren. Bijvoorbeeld: /n is gelijk aan /nologo en /o: outfile.tlb is gelijk aan /out: outfile.tlb.

Opmerkingen

Tlbexp.exe genereert een typebibliotheek die definities bevat van de typen die in de assembly zijn gedefinieerd. Toepassingen zoals Visual Basic 6.0 kunnen de gegenereerde typebibliotheek gebruiken om verbinding te maken met de .NET-typen die in de assembly zijn gedefinieerd.

Belangrijk

U kunt Tlbexp.exe niet gebruiken om Windows-metagegevensbestanden (.winmd) te exporteren. Het exporteren van Windows Runtime-assembly's wordt niet ondersteund.

De hele assembly wordt tegelijk geconverteerd. U kunt Tlbexp.exe niet gebruiken om typegegevens te genereren voor een subset van de typen die in een assembly zijn gedefinieerd.

U kunt Tlbexp.exe niet gebruiken om een typebibliotheek te produceren uit een assembly die is geïmporteerd met behulp van Type Library Importer (Tlbimp.exe). In plaats daarvan moet u verwijzen naar de oorspronkelijke typebibliotheek die is geïmporteerd met Tlbimp.exe. U kunt een typebibliotheek exporteren vanuit een assembly die verwijst naar assembly's die zijn geïmporteerd met behulp van Tlbimp.exe. Zie de onderstaande sectie met voorbeelden.

Tlbexp.exe plaatsen gegenereerde typebibliotheken in de huidige werkmap of de map die is opgegeven voor het uitvoerbestand. Een enkele assembly kan ertoe leiden dat verschillende typebibliotheken worden gegenereerd.

Tlbexp.exe genereert een typebibliotheek, maar registreert deze niet. Dit is in tegenstelling tot het hulpprogramma Assembly-registratie (Regasm.exe), waarmee zowel een typebibliotheek wordt gegenereerd als geregistreerd. Als u een typebibliotheek wilt genereren en registreren bij COM, gebruikt u Regasm.exe.

Als u de /win32 of /win64 optie niet opgeeft, genereert Tlbexp.exe een 32-bits of 64-bits bibliotheek die overeenkomt met het type computer waarop u de compilatie uitvoert (32-bits of 64-bits computer). Voor compilatiedoeleinden kunt u de /win64 optie op een 32-bits computer gebruiken om een 64-bits bibliotheek te genereren en u kunt de /win32 optie op een 64-bits computer gebruiken om een 32-bits bibliotheek te genereren. In 32-bits bibliotheken wordt de SYSKIND waarde ingesteld op SYS_WIN32. In 64-bits bibliotheken wordt de SYSKIND waarde ingesteld op SYS_WIN64. Alle gegevenstypetransformaties (bijvoorbeeld gegevenstypen van aanwijzers zoals IntPtr en UIntPtr) worden op de juiste manier geconverteerd.

Als u het MarshalAsAttribute kenmerk gebruikt om een SafeArraySubType waarde van VT_UNKNOWN of VT_DISPATCHop te geven, negeert Tlbexp.exe elk volgend gebruik van het SafeArrayUserDefinedSubType veld. Bijvoorbeeld, op basis van de volgende handtekeningen:

[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_UNKNOWN, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructUnkSafe(){return null;}  
[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_DISPATCH, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructDispSafe(){return null;}  

de volgende typebibliotheek wordt gegenereerd:

[id(0x60020004)]  
HRESULT StructUnkSafe([out, retval] SAFEARRAY(IUnknown*)* pRetVal);  
[id(0x60020005)]  
HRESULT StructDispSafe([out, retval] SAFEARRAY(IDispatch*)* pRetVal);  

Houd er rekening mee dat Tlbexp.exe het SafeArrayUserDefinedSubType veld negeert.

Omdat typebibliotheken niet alle informatie in assembly's kunnen verwerken, kan Tlbexp.exe bepaalde gegevens tijdens het exportproces negeren. Zie het samenvattingsoverzicht assembly naar typebibliotheek voor een uitleg van het transformatieproces en de identificatie van de bron van elk stukje informatie dat naar een typebibliotheek wordt verzonden.

Houd er rekening mee dat de typebibliotheekexporteur methoden exporteert die parameters hebben TypedReference , VARIANTook al heeft het TypedReference object geen betekenis in niet-beheerde code. Wanneer u methoden met TypedReference parameters exporteert, genereert de typebibliotheekexporteur geen waarschuwing of fout en niet-beheerde code die gebruikmaakt van de resulterende typebibliotheek niet correct.

Voorbeelden

Met de volgende opdracht wordt een typebibliotheek gegenereerd met dezelfde naam als de assembly in myTest.dll.

tlbexp myTest.dll  

Met de volgende opdracht wordt een typebibliotheek met de naam clipper.tlbgegenereerd.

tlbexp myTest.dll /out:clipper.tlb  

In het volgende voorbeeld ziet u het gebruik van Tlbexp.exe om een typebibliotheek te exporteren uit een assembly die verwijst naar assembly's die zijn geïmporteerd met behulp van Tlbimp.exe.

Gebruik eerst Tlbimp.exe om de typebibliotheek myLib.tlb te importeren en op te slaan als myLib.dll.

tlbimp myLib.tlb /out:myLib.dll  

De volgende opdracht maakt gebruik van de C#-compiler om de Sample.dll, die verwijzingen myLib.dll die in het vorige voorbeeld zijn gemaakt, te compileren.

CSC Sample.cs /reference:myLib.dll /out:Sample.dll  

Met de volgende opdracht wordt een typebibliotheek voor Sample.dll die verwijzingen myLib.dllgegenereerd.

tlbexp Sample.dll  

Zie ook