Dela via


Tlbexp.exe (typbiblioteksexportör)

Typbiblioteksexportören genererar ett typbibliotek som beskriver de typer som definierats i en gemensam språkkörningssammansättning.

Det här verktyget installeras automatiskt med Visual Studio. 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

tlbexp assemblyName [options]  

Parametrar

Argument beskrivning
assemblyName Sammansättningen som ett typbibliotek ska exporteras för.
Alternativ Description
/asmpath:directory Anger platsen för sökning efter sammansättningar. Om du använder det här alternativet måste du uttryckligen ange de platser som ska söka efter refererade sammansättningar, inklusive den aktuella katalogen.

När du använder asmpath-alternativet letar inte typbiblioteksexportören efter en sammansättning i den globala sammansättningscachen (GAC).
/Hjälp Visar kommandosyntax och alternativ för verktyget.
/names:filename Anger versaler för namn i ett typbibliotek. Argumentet filename är en textfil. Varje rad i filen anger versaler för ett namn i typbiblioteket.
/nologo Undertrycker microsofts startbanderoll.
/oldnames Tvingar Tlbexp.exe att exportera dekorerade typnamn om det finns en typnamnskonflikt. Observera att detta var standardbeteendet i versioner före .NET Framework version 2.0.
/out:file Anger namnet på den typbiblioteksfil som ska genereras. Om du utelämnar det här alternativet genererar Tlbexp.exe ett typbibliotek med samma namn som sammansättningen (det faktiska sammansättningsnamnet, som kanske inte nödvändigtvis är samma som filen som innehåller sammansättningen) och ett .tlb-tillägg.
/Tystnad:warningnumber Undertrycker visningen av den angivna varningen. Det här alternativet kan inte användas med /silent.
/Tyst Undertrycker visning av lyckade meddelanden. Det här alternativet kan inte användas med /silence.
/tlbreference:typelibraryname Tvingar Tlbexp.exe att uttryckligen lösa typbiblioteksreferenser utan att konsultera registret. Om sammansättning B till exempel refererar till sammansättning A kan du använda det här alternativet för att ange en explicit typbiblioteksreferens i stället för att förlita dig på typbiblioteket som anges i registret. Tlbexp.exe utför en versionskontroll för att säkerställa att typbiblioteksversionen matchar sammansättningsversionen. annars genererar det ett fel.

Observera att alternativet tlbreference fortfarande konsulterar registret i fall där ComImportAttribute attributet tillämpas på ett gränssnitt som sedan implementeras av en annan typ.
/tlbrefpath:path Fullständigt kvalificerad sökväg till ett referenstypbibliotek.
/win32 När du kompilerar på en 64-bitars dator anger det här alternativet att Tlbexp.exe genererar ett 32-bitarsbibliotek.
/win64 När du kompilerar på en 32-bitars dator anger det här alternativet att Tlbexp.exe genererar ett 64-bitarsbibliotek.
/Utförlig Anger utförligt läge. visar en lista över alla refererade sammansättningar som ett typbibliotek måste genereras för.
/? Visar kommandosyntax och alternativ för verktyget.

Kommentar

Kommandoradsalternativen för Tlbexp.exe är skiftlägesokänsliga och kan anges i valfri ordning. Du behöver bara ange tillräckligt med alternativ för att unikt identifiera det. Till exempel motsvarar /n /nologo och /o:outfile.tlb motsvarar /out:outfile.tlb.

Kommentarer

Tlbexp.exe genererar ett typbibliotek som innehåller definitioner av de typer som definieras i sammansättningen. Program som Visual Basic 6.0 kan använda det genererade typbiblioteket för att binda till de .NET-typer som definierats i sammansättningen.

Viktigt!

Du kan inte använda Tlbexp.exe för att exportera Windows-metadatafiler (.winmd). Det går inte att exportera Windows Runtime-sammansättningar.

Hela sammansättningen konverteras samtidigt. Du kan inte använda Tlbexp.exe för att generera typinformation för en delmängd av de typer som definierats i en sammansättning.

Du kan inte använda Tlbexp.exe för att skapa ett typbibliotek från en sammansättning som importerades med hjälp av typbiblioteksimportören (Tlbimp.exe). I stället bör du referera till det ursprungliga typbiblioteket som importerades med Tlbimp.exe. Du kan exportera ett typbibliotek från en sammansättning som refererar till sammansättningar som har importerats med hjälp av Tlbimp.exe. Se exempelavsnittet nedan.

Tlbexp.exe platser genererade typbibliotek i den aktuella arbetskatalogen eller katalogen som angetts för utdatafilen. En enskild sammansättning kan orsaka att flera typbibliotek genereras.

Tlbexp.exe genererar ett typbibliotek men registrerar det inte. Detta står i kontrast till verktyget Sammansättningsregistrering (Regasm.exe), som både genererar och registrerar ett typbibliotek. Om du vill generera och registrera ett typbibliotek med COM använder du Regasm.exe.

Om du inte anger något /win32 av alternativen eller /win64 genererar Tlbexp.exe ett 32-bitars- eller 64-bitarsbibliotek som motsvarar den typ av dator där du utför kompilering (32-bitars eller 64-bitars dator). I korskompileringssyfte kan du använda /win64 alternativet på en 32-bitars dator för att generera ett 64-bitarsbibliotek och du kan använda /win32 alternativet på en 64-bitarsdator för att generera ett 32-bitarsbibliotek. I bibliotek SYSKIND av 32-bitarstyp är värdet inställt på SYS_WIN32. I bibliotek SYSKIND av 64-bitarstyp är värdet inställt på SYS_WIN64. Alla datatyptransformeringar (till exempel datatyper i pekarstorlek som IntPtr och UIntPtr) konverteras på rätt sätt.

Om du använder MarshalAsAttribute attributet för att ange värdet SafeArraySubTypeVT_UNKNOWN eller VT_DISPATCHTlbexp.exe ignorerar all efterföljande användning av fältet SafeArrayUserDefinedSubType . Till exempel med följande signaturer:

[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;}  

följande typbibliotek genereras:

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

Observera att Tlbexp.exe ignorerar fältet SafeArrayUserDefinedSubType .

Eftersom typbibliotek inte kan hantera all information som finns i sammansättningar kan Tlbexp.exe ta bort vissa data under exportprocessen. En förklaring av omvandlingsprocessen och identifieringen av källan för varje information som skickas till ett typbibliotek finns i Sammanfattning av konvertering av sammansättning till typbibliotek.

Observera att typbiblioteksexportören exporterar metoder som har TypedReference parametrar som VARIANT, även om TypedReference objektet inte har någon betydelse i ohanterad kod. När du exporterar metoder som har TypedReference parametrar genererar inte typbiblioteksexportören en varning eller ett fel, och ohanterad kod som använder det resulterande typbiblioteket körs inte korrekt.

Exempel

Följande kommando genererar ett typbibliotek med samma namn som sammansättningen som finns i myTest.dll.

tlbexp myTest.dll  

Följande kommando genererar ett typbibliotek med namnet clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb  

I följande exempel visas hur du använder Tlbexp.exe för att exportera ett typbibliotek från en sammansättning som refererar till sammansättningar som har importerats med hjälp av Tlbimp.exe.

Använd först Tlbimp.exe för att importera typbiblioteket myLib.tlb och spara det som myLib.dll.

tlbimp myLib.tlb /out:myLib.dll  

Följande kommando använder C#-kompilatorn för att kompilera vilka Sample.dll, referenser myLib.dll som skapades i föregående exempel.

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

Följande kommando genererar ett typbibliotek för Sample.dll som refererar till myLib.dll.

tlbexp Sample.dll  

Se även