Resgen.exe (مولد ملف الموارد)

يقوم مولد ملف الموارد بتحويل الملفات النصية (.txt أو .restext) و الملفات ذات التنسيق (.resx) للموارد المستندة للـ XML إلى ملفات وقت تشغيل اللغة العامة الثنائية (.موارد) التي يمكن تضمينها في ملف قابل للتنفيذ ثنائي لوقت التشغيل أو تحويلها برمجياً إلى تجميعات القمر الصناعي. لمزيد من المعلومات حول توزيع واسترداد الملفات .resources, راجع موارد في تطبيقات.

يقوم Resgen.exe بإجراء التحويلات التالية:

  • تحويل الملفات .txt أو .restext إلى الملفات .resx أو .resources.

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

    تم تقديم الملحق .restext في الإصدار .NET Framework 2.0,فتنسيق الملفات .restext مماثل لتنسيق الملفات .txtو على الرغم من ذلك فإن الملحق .restext يساعدك على التعرف على الملفات النصية التي تحتوي على تعريفات المورد بسهولة أكبر.

  • تحويل الملفات .resources إلى الملفات النصية أو .resx.

  • تحويل الملفات .resx إلى الملفات النصية أو .resources.

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

resgen [parameters] [/compile]filename.extension [outputFilename.extension] [/str:lang[,namespace[,class[,file]]]]

المعلمات

الوسيطة

الوصف

filename.extension

لتحويل اسم لملف الإدخال فإن extension يجب أن يكون واحد مما يلي:

.txt أو .restext

يحدد الملحق الخاص بملف نصي لتحويله إلى ملف .resources أو .resx و يمكن أن تحتوي الملفات النصية على موارد السلسلة فقط.

.resx

يحدد الملحق الخاص بملف الموراد المستند إلى XML لتحويله إلى ملف نصي (.txt أو .restext) أو .resources.

.resources

يحدد الملحق الخاص بملف مورد لتحويله إلى ملف نصي (.txt أو .restext) أو .resx.

outputFilename.extension

لإنشاء اسم لملف الموارد.

تعتبر هذه الوسيطة اختيارية عند التحويل من ملف .txt أو .restext أو .resx حيث يمكنك تحديد الملحق .resources عند تحويل ملف نصي أو .resx إلى ملف .resources, و إذا لم تقم بتحديد outputFilename فإن Resgen.exe يقوم بإلحاق ملحق .resources في وسيطة الإدخال filename ثم يكتب الملف إلى الدليل الذي يحتوي على filename.

تعتبر الوسيطة outputFilename إلزامية عند التحويل من ملف .resources و تحديد الملحق .resx عند تحويل ملف .resources إلى ملف مورد مستند إلى XML و تحديد الملحق .txt أو .restext عند تحويل ملف .resources إلى ملف نصي, فيجب عليك فقط تحويل ملف .resources إلى ملف .txt عندما يحتوي ملف .resources على قيم السلسلة فقط.

الخيار

الوصف

/compile

يسمح لك بتحديد ملفات نصية متعددة أو .resx لتحويلها إلى ملفات .resources متعددة في عملية واحدة كبيرة الحجم, و إذا لم تقم بتحديد هذا الخيار فيمكنك فقط تحديد وسيطة واحدة من ملف الإدخال.

و لا يمكن استخدام هذا الخيار مع الخيار /str:,

/publicClass

إنشاء فئة موارد مكتوبة بشدة كفئة عامة.

يتم تجاهل هذا الخيار إذا لم تقم باستخدام الخيار /str:.

/r:assembly

يحدد تلك الأنواع ليتم تحميلها من assembly, و إذا قمت بتحديد هذا الخيار فإن ملف .resx مع إصدار سابق لنوع سوف يستخدم النوع في assembly.

/str:language[,namespace[,classname[,filename]]]

يقوم بإنشاء ملف فئة موارد مكتوبة بشدة في الغة البرمجة (cs أو #C لـ #C أو vb أو visualbasic لـ Visual Basic) المحددة في الخيار language, و يمكنك استخدام الخيار namespace لتحديد مساحة الاسم الافتراضية للمشروع و الخيار classname لتحديد اسم للفئة التي تم إنشاؤه و الخيار filename لتحديد اسم ملف الفئة.

ملاحظةملاحظة
في الإصدار .NET Framework 2.0 يتم تجاهل classname و filename إذا لم يتم تحديد namespace.

يتم السماح بملف إدخال واحد فقط عندما يتم استخدام الخيار /str: بحيث يتعذر استخدامه مع الخيار /compile.

إذا تم تحديد namespace و لكن لم يتم تحديد classname فإنه يتم اشتقاق اسم الفئة من اسم ملف الإخراج (على سبيل المثال، يتم استبدال أحرف (_) للفترات), و نتيجة لذلك قد لا تعمل الموارد المكتوبة بشدة بشكل صحيح فلتجنب ذلك قم بتحديد اسم الفئة و اسم ملف الإخراج.

/usesourcepath

يحدد أنه تم استخدام ملف الإدخال للدليل الحالي لحل مسارات الملفات النسبية.

ملاحظات

يقوم Resgen.exe بتحويل الملفات بالتفاف الأساليب المطبقة بواسطة الفئات الأربعة التالية:

لاحظ أنه تم إنشاء ملف .resx بواسطة الفئة ResXResourceWriter التي لا يمكن استخدامها بشكل مباشر من قبل تطبيق .NET Framework و قبل إضافة هذا الملف إلى التطبيق الخاص بك قم بتشغيله من خلال Resgen.exe لتحويله إلى ملف .resources. لمزيد من المعلومات حول تنفيذ هذه الفئات في التعليمات البرمجية الخاصة بك, راجع المواضيع ذات الصلة.

لكي يكون Resgen.exe قادر على تحليل المدخلات الخاصة بك فمن المهم أن تتبع الملفات النصية و .resx التنسيق الصحيح.

يمكن أن تحتوي الملفات النصية (.txt أو .restext) على موارد السلسلة فقط حيث تعتبر موارد السلسلة مفيدة إذا كنت تقوم بكتابة تطبيق ما بحيث يجب أن يحتوي على السلاسل المترجمة إلى عدة لغات فعلى سبيل المثال، يمكن بسهولة regionalize سلاسل القائمة باستخدام الموارد المناسبة من السلسلة, و يقوم Resgen.exe بقراءة الملفات النصية المحتوية على زوج الاسم/القيمة حيث الاسم عبارة عن سلسلة تصف الموارد و القيمة عبارة عن سلسلة الموارد بذاتها و هكذا يجب عليك تحديد كل زوج الاسم/القيمة على سطر منفصل كما يلي:

name=value

لاحظ أن السلاسل الفارغة مسموح بها في الملفات النصية فعلى سبيل المثال:

EmptyString=

يجب أن يتم حفظ ملف نصي باستخدام الترميز Unicode أو UTF-8 ما لم يحتوي على أحرف في الأبجدية الرومانية العادية فقط دون علامات التشكيل مثل cedilla و umlaut tilde فعلى سبيل المثال، يقوم Resgen.exe بإزالة أحرف ‏‫ANSI الموسعة عندما يقوم بمعالجة ملف نصي لا يحتوي على الترميز Unicode أو UTF-8.

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

تنسيق ملف الموارد .resx يتكون من الإدخالات XML حيث يمكنك تحديد موارد السلسلة ضمن هذه الإدخالات لـ XML كما تفعل في الملفات النصية, فالميزة الأساسية لملفات .resx عبر الملفات النصية هي أنه يمكنك أيضاً تحديد أو تضمين الكائنات و عندما تقوم بعرض ملف .resx يمكنك بالفعل مشاهدة النموذج الثنائي لكائن مضمّن (صورة على سبيل المثال) عندما تكون هذه المعلومات الثنائية جزء من بيان المورد تماماً كما مع الملفات النصية حيث يمكنك فتح ملف .resx باستخدام محرر النصوص (مثل المفكرة أو ‏‫برنامج Microsoft Word) و كتابة و تحليل و معالجة المحتويات, و للقيام بهذا الأمر تحتاج إلى معرفة بضاعة لعلامات XML و بنية الملف .resx. لتفاصيل أكثر حول تنسيق الملف .resx, راجع موارد في تنسيق الملف .Resx.

لكي تتمكن من إنشاء ملف .resources يتضمن كائنات nonstring مضمنة فيجب عليك إما استخدام Resgen.exe لتحويل ملف .resx الذي يحتوي على كائنات أو إضافة موارد الكائن إلى الملف الخاص بك مباشرة من التعليمات البرمجية باستخدام الأساليب التي يوفرها فئة ResourceWriter, و إذا كنت تستخدم Resgen.exe لتحويل ملف موارد يحتوي على كائنات إلى ملف نصي فإنه سيتم تحويل كافة موارد السلسلة بشكل صحيح و لكن سيتم أيضاً كتابة أنواع البيانات لكائنات nonstring إلى الملف كسلاسل و هكذا سوف تفقد الكائنات المضمنة في التحويل و سيقدم Resgen.exe تقريراً أنه حدث خطأ في استرداد الموارد.

يقوم الإصدار 2.0 من برنامج .NET Framework بدعم الموارد المكتوبة بشدة حيث تقوم الموارد المكتوبة بشدة بتغليف الوصول إلى الموارد عن طريق إنشاء الفئات التي تتضمن مجموعة من الخصائص الثابتة للقراءة فقط (get) و بالتالي توفر طريقة بديلة تستهلك الموارد بدلاً من استخدام الأساليب من الفئة ResourceManager بشكل مباشر, و يتم توفير الوظائف الأساسية بواسطة خيار سطر الأوامر /str في Resgen.exe الذي يلف وظائف الفئة StronglyTypedResourceBuilder, و عندما تقوم بتحديد الخيار /str فإن الإخراج لـ Resgen.exe عبارة عن فئة تحتوي على خصائص مكتوبة بشدة مطابقة للموارد التي تتم الإشارة إليها في معلمة الإدخال, و هكذا تقوم هذه الفئة بتوفير الوصول المكتوب بشدة للقراءة فقط إلى الموارد المتوفرة في ملف المعالجة.

تسمح لك الاداة Resgen.exe (مولد ملف الموارد) بإنشاء الملفات .resources كما في التغليف المكتوب بشدة للوصول إلى تلك الملفات .resources و عندما تقوم بإنشاء تغليف مكتوب بشدة فإن اسم الملف الخاص بك .resources يجب أن يطابق مساحة الاسم و اسم الفئة (على سبيل المثال, MyNamespace.MyClass.resources) من التعليمات البرمجية المنشأة, و مع ذلك فإن الأداة Resgen.exe (مولد ملف الموارد) تسمح لك بتحديد الخيارات التي تقوم بإنتاج ملف .resources باسم غير متوافق, و للتغلب على هذه المشكلة أعد تسمية ملفات الإخراج المسماة بشكل غير متوافق بعد قيام الأداة Resgen.exe (مولد ملف الموارد) بإنشائهم.

عند الانتهاء من إنشاء ملفات .resources مع Resgen.exe قم باستخدام رابط التجميع (Al.exe) إما لتضمين الموارد في الملف القابل للتنفيذ الثنائي لوقت التشغيل أو ترجمتها ضمن تجميعات القمر الصناعي.

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

إذا فشل Resgen.exe لأي سبب كان سيتم إرجاع القيمة –1.

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

لا يقبل Resgen.exe .resx باسم ملف يحتوي على مسافات أثناء إنشاء فئة الموارد المكتوبة بشدةو يحل محل كافة الأحرف غير الصالحة مع تسطير سفلي ("_").لمزيد من المعلومات، راجع VerifyResourceName.

أمثلة

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

resgen

يقوم الأمر التالي بقراءة زوج الاسم/القيمة في myResources.txt و يقوم بكتابة موارد ثنائية لملف باسم myResources.resources. Because the output file name is not specified explicitly, it receives the same name as the input file by default.

resgen myResources.txt 

يقوم الأمر التالي بقراءة زوج الاسم/القيمة في myResources.restext و يقوم بكتابة موارد ثنائية لملف باسم yourResources.resources.

resgen myResources.restext yourResources.resources

يقوم الأمر التالي بقراءة ملف إدخال يستند إلى XML myResources.resx و كتابة موارد ثنائية لملف باسم myResources.resources.

resgen myResources.resx myResources.resources

يقوم الأمر التالي بقراءة ملف موارد ثنائية myResources.resources و كتابة ملف إخراج مستند إلى XML باسم myResources.resx.

resgen myResources.resources myResources.resx

تقوم الأوامر التالية بقراءة ملف إدخال مستند إلى XML باسم myResources.resx و كتابة الملفات النصية المسماة myResources.txt و myResources.restext على التوالي. لاحظ أنه إذا كان الملف .resx يحتوي على أي كائنات مضمنة فلن يكون تحويلها إلى الملفات النصية دقيق.

resgen myResources.resx myResources.txt
resgen myResources.resx myResources.restext

يقوم الأمر التالي بقراءة ملف إدخال يستند إلى XML myResources.resx و كتابة موارد ثنائية لملف باسم myResources.resources. و يقوم أيضاً بإنشاء ملف Visual Basic باسم MyFile.vb مع فئة باسم MyClass التي تحتوي على الخصائص المكتوبة بشدة المطابقة للموارد التي يتم الإشارة إليها في ملف الإدخال. الفئة MyClass موجودة ضمن مساحة الاسم باسم Namespace1.

resgen myResources.resx myResources.resources /str:C#,Namespace1,MyClass,MyFile.cs

راجع أيضًا:

المرجع

System.Resources.Tools

Al.exe (رابط التجميع)

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

المبادئ

الموارد في تطبيقات

موارد أخرى

أدوات .NET Framework

ترميز و تعريب