Tlbexp.exe (Tür Kitaplığı Dışarı Aktarıcı)
Tür Kitaplığı Verme Programı, bir ortak dil çalışma zamanı derlemesinde tanımlanan türleri açıklayan bir tür kitaplığı üretir.
Bu araç, Visual Studio ile birlikte otomatik olarak yüklenir. Aracı çalıştırmak için Visual Studio Geliştirici Komut İstemi'ni veya Visual Studio Geliştirici PowerShell'i kullanın.
Komut istemine şunu yazın:
Sözdizimi
tlbexp assemblyName [options]
Parametreler
Bağımsız değişken | Açıklama |
---|---|
assemblyName | Bir tür kitaplığının kendisi için dışarı aktarılacağı derleme. |
Seçenek | Açıklama |
---|---|
/asmpath: dizin | Derlemelerin aranacağı konumu belirtir. Bu seçeneği kullanırsanız, geçerli dizini de dahil olmak üzere, başvurulan derlemelerin aranacağı konumları açıkça belirtmeniz gerekir. Asmpath seçeneğini kullandığınızda, Tür Kitaplığı Dışarı Aktarıcısı genel derleme önbelleğinde (GAC) bir derleme aramaz. |
/Yardım | Araç için komut sözdizimini ve seçenekleri görüntüler. |
/names: filename | Bir tür kitaplığındaki adların büyük küçük harfle nasıl yazılacağını belirtir. Dosya adı bağımsız değişkeni bir metin dosyasıdır. Dosyadaki her bir satır, tür kitaplığındaki bir adın büyük küçük harfle nasıl yazılacağını belirtir. |
/nologo | Microsoft başlangıç başlığı görüntüsünü bastırır. |
/oldnames | Bir tür adı çakışması varsa, Tlbexp.exe'yi donatılmış tür adlarını dışarı aktarmaya zorlar. .NET Framework sürüm 2.0'ın önceki sürümlerinde bunun varsayılan davranış olduğunu unutmayın. |
/out: dosya | Üretilecek tür kitaplığı dosyasının adını belirtir. Bu seçeneği atlarsanız, Tlbexp.exe, derlemeyle (derlemeyi içeren dosyayla aynı olması gerekmeyen, gerçek derleme adı) aynı adda ve .tlb uzantılı bir tür kitaplığı üretir. |
/sessizlik: warningnumber |
Belirtilen uyarının görüntülenmesini bastırır. Bu seçenek /silent ile kullanılamaz. |
/silent | Başarı iletilerinin görüntülenmesini bastırır. Bu seçenek /silence ile kullanılamaz. |
/tlbreference: typelibraryname | Tlbexp.exe'yi, kayıt defterine danışmadan tür kitaplığı başvurularını açıkça çözmeye zorlar. Örneğin, derleme B derleme A'ya başvurursa, kayıt defterinde belirtilen tür kitaplığına güvenmek yerine, bir açık tür kitaplığı başvurusu sağlamak için bu seçeneği kullanabilirsiniz. Tlbexp.exe, tür kitaplığı sürümünün derleme sürümüyle eşleşmesini sağlamak için bir sürüm denetimi yapar; tersi durumda, bir hata üretir. Tlbreference seçeneğinin özniteliğin daha sonra başka bir tür tarafından uygulanan bir arabirime uygulandığı durumlarda ComImportAttribute kayıt defterine hala başvurduğunu unutmayın. |
/tlbrefpath: path | Başvurulan tür kitaplığının tam olarak belirtilen yolu. |
/win32 | 64 bit'lik bir bilgisayarda derleme yaparken, bu seçenek Tlbexp.exe'nin bir 32 bit tür kitaplığı ürettiğini belirtir. |
/win64 | 32 bit bir bilgisayarda derleme yaparken, bu seçenek Tlbexp.exe 64 bit tür kitaplığı oluşturduğunu belirtir. |
/verbose | Ayrıntılı modu belirtir; kendileri için bir tür kitaplığı üretilmesi gereken tüm başvurulan derlemelerin listesini görüntüler. |
/? | Araç için komut sözdizimini ve seçenekleri görüntüler. |
Not
Tlbexp.exe için komut satırı seçenekleri büyük-küçük harfe duyarlıdır ve herhangi bir sırada sağlanabilir. Tek yapmanız gereken, onu benzersiz şekilde tanımlamak için seçeneği yeterince belirtmektir. Örneğin, /n / nologo ile eşdeğerdir ve /o: outfile.tlb /out: outfile.tlb ile eşdeğerdir.
Açıklamalar
Tlbexp.exe, derlemede tanımlanan türlerin tanımlarını içeren bir tür kitaplığı üretir. Visual Basic 6.0 gibi uygulamalar, derlemede tanımlanan .NET türlerine bağlanacak üretilmiş tür kitaplığını kullanabilir.
Önemli
Windows meta veri (.winmd) dosyalarını dışarı aktarmak için Tlbexp.exe'yi kullanamazsınız. Windows Çalışma Zamanı derlemelerinin dışarı aktarılması desteklenmez.
Tüm derleme bir kez dönüştürülür. Derlemede tanımlanan türlerin bir alt kümesi için tür bilgisi üretmek üzere Tlbexp.exe'yi kullanamazsınız.
Tür Kitaplığı İçeri Aktarıcısı (Tlbimp.exe) kullanılarak içeri aktarılan bir derlemeden tür kitaplığı oluşturmak için Tlbexp.exe kullanamazsınız. Onun yerine, Tlbimp.exe ile içeri aktarılan özgün tür kitaplığına başvurmanız gerekir. Tlbimp.exe kullanılarak içeri aktarılan derlemelere başvuran bir derlemeden bir tür kitaplığını içeri aktarabilirsiniz. Aşağıdaki örnekler bölümüne bakın.
Tlbexp.exe, üretilen tür kitaplıklarını geçerli çalışma dizinine veya çıktı dosyası için belirtilen dizine yerleştirir. Tek bir derleme, birçok tür kitaplığının üretilmesine neden olabilir.
Tlbexp.exe bir tür kitaplığı oluşturur ama bunu kaydetmez. Bu, hem tür kitaplığı oluşturan hem de kaydeden Derleme Kaydı aracının (Regasm.exe) aksinedir. COM ile bir tür kitaplığı üretmek ve kaydetmek için, Regasm.exe'yi kullanın.
veya /win64
seçeneğini belirtmezseniz/win32
, Tlbexp.exe derlemeyi gerçekleştirmekte olduğunuz bilgisayarın türüne (32 bit veya 64 bit bilgisayar) karşılık gelen 32 bit veya 64 bit türünde bir kitaplık oluşturur. Çapraz derleme amacıyla, 32 bit bir bilgisayarda seçeneğini kullanarak /win64
64 bit tür kitaplığı oluşturabilir ve 64 bit bir bilgisayarda bu seçeneği kullanarak /win32
32 bit tür kitaplığı oluşturabilirsiniz. 32 bit tür kitaplıklarında SYSKIND değer olarak SYS_WIN32ayarlanır. 64 bit tür kitaplıklarında SYSKIND değer olarak SYS_WIN64ayarlanır. Tüm veri türü dönüştürmeleri (örneğin, ve UIntPtr
gibi IntPtr
işaretçi boyutundaki veri türleri) uygun şekilde dönüştürülür.
veya VT_DISPATCH
değerini VT_UNKNOWN
belirtmek SafeArraySubType için özniteliğini MarshalAsAttribute kullanırsanız Tlbexp.exe alanın sonraki kullanımını SafeArrayUserDefinedSubType yoksayar. Örneğin, aşağıdaki imzalar verildiğinde:
[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;}
aşağıdaki tür kitaplığı oluşturulur:
[id(0x60020004)]
HRESULT StructUnkSafe([out, retval] SAFEARRAY(IUnknown*)* pRetVal);
[id(0x60020005)]
HRESULT StructDispSafe([out, retval] SAFEARRAY(IDispatch*)* pRetVal);
Tlbexp.exe alanı yoksaydığını SafeArrayUserDefinedSubType unutmayın.
Tür kitaplıkları derlemelerde bulunan tüm bilgileri barındıramayacağından, dışarı aktarma işlemi sırasında Tlbexp.exe bazı verileri atabilir. Dönüştürme işleminin açıklaması ve tür kitaplığına yayılan her bilgi parçasının kaynağının tanımlanması için Bkz . Tür Kitaplığı Dönüştürme Özeti Derlemesi.
Nesnenin yönetilmeyen kodda bir anlamı olmasa bile Tür Kitaplığı Verme işleminin TypedReference parametresi VARIANT
olan yöntemleri TypedReference olarak dışarı aktardığını unutmayın. Parametreleri olan TypedReference yöntemleri dışarı aktardığınızda, Tür Kitaplığı Dışarı Aktarıcısı bir uyarı veya hata oluşturmaz ve sonuçta elde edilen tür kitaplığını kullanan yönetilmeyen kod düzgün çalışmaz.
Örnekler
Aşağıdaki komut, içinde myTest.dll
bulunan derlemeyle aynı ada sahip bir tür kitaplığı oluşturur.
tlbexp myTest.dll
Aşağıdaki komut, adlı clipper.tlb
bir tür kitaplığı oluşturur.
tlbexp myTest.dll /out:clipper.tlb
Aşağıdaki örnekte, bir tür kitaplığını Tlbimp.exe kullanılarak içeri aktarılan derlemelere başvuran bir derlemeden dışarı aktarmak için Tlbexp.exe'nin kullanılması gösterilmektedir.
İlk olarak tür kitaplığını myLib.tlb
içeri aktarmak ve olarak myLib.dll
kaydetmek için Tlbimp.exe kullanın.
tlbimp myLib.tlb /out:myLib.dll
Aşağıdaki komut, önceki örnekte oluşturulan başvurularını myLib.dll
derlemek Sample.dll
için C# derleyicisini kullanır.
CSC Sample.cs /reference:myLib.dll /out:Sample.dll
Aşağıdaki komut, öğesine başvuran myLib.dll
bir tür kitaplığı Sample.dll
oluşturur.
tlbexp Sample.dll