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_DISPATCH
op 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 , VARIANT
ook 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.tlb
gegenereerd.
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.dll
gegenereerd.
tlbexp Sample.dll