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: katalog | 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: fil | 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: sökväg | 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. |
/mångordig | 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 SafeArraySubType VT_UNKNOWN
eller VT_DISPATCH
Tlbexp.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 Sample.dll
, som refererar till 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