Tlbexp.exe (مُصدّر مكتبة الأنواع)

يقوم مُصدّر مكتبة الأنواع بإنشاء مكتبة أنواع تصف الأنواع المعرفة في تجميع وقت تشغيل اللغة العامة.

يتم تلقائياً تثبيت مُصدّر مكتبة الأنواع مع ‏‫Visual Studio, و لتشغيل الأداة استخدم موجه أوامر Visual Studio.. في موجه الأوامر، اكتب ما يلي:

tlbexp assemblyName [/out:file] [/nologo] [/silent] [/verbose]

المعلمات

الوسيطة

الوصف

assemblyName

التجميع الذي يصدّر مكتبة أنواع.

الخيار

الوصف

/asmpath:الدليل

تحديد الموقع للبحث عن تجميعات, و إذا استخدمت هذا الخيار يجب عليك تحديد المواقع بوضوح للبحث عن التجميعات المشار إليها بما في ذلك الدليل الحالي.

عندما تقوم باستخدام الخيار asmpath فإن مُصدّر مكتبة الأنواع لن يبحث عن تجميع في مخزن التجميع العمومي المؤقت (GAC).

/help

يقوم بعرض بناء جملة الأمر والخيارات للأداة.

/names:اسم الملف

يحدد الكتابة بالأحرف الكبيرة للأسماء في مكتبة الأنواع, فالوسيطة اسم الملف عبارة عن ملف نصي و كل خط في الملف يحدد الكتابة بالأحرف الكبيرة لاسم واحد في مكتبة الأنواع.

/nologo

يقوم بمنع عرض شعار بدء التشغيل للـ Microsoft.

/oldnames

إذا كان هناك تعارض لاسم نوع فيتم إجبار Tlbexp.exe على تصدير أسماء أنواع مزينة, فلاحظ أن هذا هو السلوك الافتراضي في الإصدارات السابقة لــ .NET Framework الإصدار 2.0.

/out:ملف

يحدد الاسم لملف مكتبة الأنواع ليتم إنشاؤه, و إذا حذفت هذا الخيار فإن Tlbexp.exe يقوم بإنشاء مكتبة أنواع تحمل نفس اسم التجميع (ليس بالضرورة أن يكون اسم التجميع الفعلي مماثل للملف المحتوي على التجميع) و ملحق .tlb.

هدوء

يقوم بمنع عرض رسائل النجاح.

/tlbreference:typelibraryname

إجبار Tlbexp.exe على حل مراجع مكتبة الأنواع دون استشارة السجل فعلى سبيل المثال، إذا كان التجميع ب يشير إلى التجميع أ بحيث يمكنك استخدام هذا الخيار لتوفير مرجع لمكتبة أنواع صريح بدلاً من الاعتماد على مكتبة الأنواع المحددة في السجل, وهكذا يقوم Tlbexp.exe بالتحقق من الإصدار للتأكد من أن إصدار مكتبة الأنواع يطابق إصدار التجميع و إلا يقوم بإنشاء خطأ.

لاحظ أن الخيار tlbreference مازال يستشير السجل في الحالات التي يتم فيها تطبيق السمة ComImportAttribute على واجهة بحيث يتم بعد ذلك تنفيذها بواسطة نوع آخر.

/tlbrefpath:مسار

مسار مؤهل بشكل كامل لمكتبة الأنواع المشار إليها.

/win32

عندما يتم تحويل برمجي على جهاز كمبيوتر 64-بت فإن هذا الخيار يحدد قيام Tlbexp.exe بإنشاء مكتبة أنواع 32-بت.

/win64

When compiling on a 32-bit computer, this option specifies that Tlbexp.exe generates a 64-bit type library.

/verbose

إن تحديد الوضع verbose يعرض قائمة للتجميعات المشار إليها و التي تحتاج لها لإنشاء مكتبة أنواع.

/?

يقوم بعرض بناء جملة الأمر والخيارات للأداة.

ملاحظةملاحظة

إن خيارات سطر الأوامر لـ Tlbexp.exe لا تتحسس من حالة الأحرف كما يمكن أن تتوفر بأي ترتيب,وهكذا أنت بحاجة فقط لتحديد ما يكفي من الخيار لتعريفه بشكل فريدفعلى سبيل المثال, إن /n يكافئ /nologo, أما /o:outfile.tlb يكافئ /out:outfile.tlb.

ملاحظات

يقوم Tlbexp.exe بإنشاء مكتبة أنواع تحتوي على ملفات تعريف للأنواع المعرفة في التجميع, و التطبيقات كـ Visual Basic 6.0 يمكنها استخدام مكتبة الانواع التي تم إنشاؤها لربطها إلى أنواع .NET المعرفة في التجميع.

يتم تحويل التجميع بأكمله في آن واحد و لا يمكنك استخدام Tlbexp.exe لإنشاء معلومات النوع لمجموعة فرعية من الأنواع المعرفة في التجميع.

لا يمكن استخدام Tlbexp.exe لإنتاج مكتبة أنواع من تجميع تم استيراده باستخدام مستورد مكتبة الأنواع (Tlbimp.exe), فبدلاً من ذلك يجب الرجوع إلى مكتبة الأنواع الأصلية الأصلي التي تم استيرادها مع Tlbimp.exe و يمكنك تصدير مكتبة أنواع من تجميع يشير إلى التجميعات التي تم استيرادها باستخدام Tlbimp.exe. راجع قسم الأمثلة أدناه.

قامت منازل Tlbexp.exe بإنشاء مكتبات الأنواع في الدليل المشغَّل الحالي أو في الدليل المحدد لملف الإخراج و قد يتسبب تجميع واحد بإنشاء عدة مكتبات أنواع.

يقوم Tlbexp.exe بإنشاء مكتبة أنواع و لكن لا يتم تسجيل ذلك, و هذا خلافاً على أداة تسجيل التجميع (Regasm.exe) التي تقوم بإنشاء و تسجيل مكتبة أنواع, و قم باستخدام Regasm.exe لإنشاء و تسجيل مكتبة أنواع مع COM.

إذا لم تقم بتحديد الخيار /win32 أو الخيار /win64 فإن Tlbexp.exe يقوم بإنشاء مكتبة أنواع 32-بت أو 64-بت التي تتوافق مع نوع جهاز الكمبيوتر و التي تقوم بتنفيذ التجميع (جهاز كمبيوتر 32-بت أو 64-بت), و بالنسبة لأغراض التجميع المشتركة يمكنك استخدام الخيار /win64 على جهاز كمبيوتر 32-بت لإنشاء مكتبة أنواع 64-بت كما يمكنك استخدام الخيار /win32 على جهاز كمبيوتر 64-بت لإنشاء مكتبة أنواع 32-بت, أما في مكتبات الأنواع 32-بت فإنه تم تعيين القيمة SYSKIND إلى SYS_WIN32, أما في مكتبات الأنواع 64-بت فإنه تم تعيين القيمة SYSKIND إلى SYS_WIN64, و كافة تحويلات أنواع البيانات (على سبيل المثال، أنواع بيانات حجم المؤشر مثل IntPtr و UIntPtr) يتم تحويلها بشكل مناسب.

إذا قمت باستخدام السمة MarshalAsAttribute لتحديد القيمة SafeArraySubType لـ VT_UNKOWN أو VT_DISPATCH فإن Tlbexp.exe يتجاهل أي استخدام لاحق للحقل SafeArrayUserDefinedSubType. و نظراً للتواقيع التالية:

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

يتم إنشاء مكتبة الأنواع التالية:

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

لاحظ أن Tlbexp.exe يتجاهل الحقل SafeArrayUserDefinedSubType.

لأن مكتبات الأنواع لا تلائم كافة المعلومات الموجودة في التجميعات و قد يقوم Tlbexp.exe بتجاهل بعض البيانات أثناء عملية التصدير. راجع تجميع لتلخيص تحويل مكتبة الأنواع للحصول على شرح لعملية التحويل و تعريف مصدر كل معلومة تصدر إلى مكتبة أنواع.

لاحظ أن مُصدّر مكتبة الأنواع يقوم بتصدير الأساليب التي لديها TypedReference معلمات كـ VARIANT بالرغم من أن الكائن TypedReference ليس له معنى في التعليمات البرمجية الغير مُدارة, و عندما تصدّر الأساليب التي لديها المعلمات TypedReference فإن مُصدّر مكتبة الأنواع لن يقوم بإنشاء خطأ أو تحذير و هكذا لن تعمل التعليمات البرمجية الغير مُدارة التي تستخدم مكتبة الأنواع الناتجة بشكل صحيح.

يتم اعتماد مُصدّر مكتبة الأنوع على Microsoft Windows 2000 و الإصدارات الأحدث.

أمثلة

يقوم الأمر التالي بإنشاء مكتبة أنواع تحمل نفس اسم التجميع الموجود في myTest.dll.

tlbexp myTest.dll

يقوم الأمر التالي بإنشاء مكتبة أنواع بالاسم clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb

يوضح المثال التالي استخدام Tlbexp.exe ليقوم بتصدير مكتبة أنواع من تجميع يشير إلى تجميعات تم استيرادها باستخدام Tlbimp.exe.

أولاً استخدم Tlbimp.exe لاستيراد مكتبة الأنواع myLib.tlbو احفظه كـ myLib.dll.

tlbimp myLib.tlb /out:myLib.dll

يستخدم الأمر التالي المترجم #C ليحول برمجياً Sample.dll, الذي يشير إلى myLib.dll حيث تم إنشاؤه في المثال السابق.

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

يقوم الأمر التالي بإنشاء مكتبة أنواع لـ Sample.dll الذي يشير إلى myLib.dll.

tlbexp Sample.dll

راجع أيضًا:

المرجع

TypeLibExporterFlags

Regasm.exe (أداة تسجيل التجميع)

Tlbimp.exe (مستورد مكتبة الأنواع)

موجه أوامر Visual Studio.

موارد أخرى

أدوات .NET Framework

التجميع ملخص تحويل مكتبة النوع