تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مترجم سطر الأوامر الخاص بفيجوال بايزيك 2008
#1
كاتب الموضوع : samerselo

موجه سطر الأوامر الخاص بفيجوال ستوديو 2008
عندما نقوم بتنصيب .Net Framework 3.5 SDK أو إحدى نسخ Visual Studio 2008 يتم إنشاء مجموعة من المجلدات الجديدة التي تحتوي على مجموعة متنوعة من أدوات تطوير الدوت نيت والعديد من هذه الأدوات يتم تنفيذها من سطر الأوامر فإن كنت تريد تشغيل هذه الأدوات من أية نافذة سطر أوامر في الويندوز فيجب عليك عندها تسجيل هذه المجلدات ضمن متغير البيئة PATH العائد لنظام التشغيل ورغم أنه يمكنك تحديث ذلك المتغير بنفسك يدويا إلا أنه يمكنك توفير العناء على نفسك وتشغيل Visual Studio 2008 Command Prompt من المجلد Visual Studio Tools الكائن في المجلد Microsoft Visual Studio 2008 في قائمة ابدأ.
وتكمن الفائدة من فتح موجه سطر الأوامر بهذه الطريقة في كونه مضبوطا سلفا ليمكنك من الوصول إلى جميع أدوات التطوير العائدة للدوت نيت بدون أن تحتاج للقيام بتعديل متغيرات البيئة الخاصة بالنظام يدويا فإن أردنا رؤية المساعدة الخاصة بأداة ترجمة مشاريع VB2008 يمكنك تنفيذ الأمر التالي من موجه سطر الأوامر الخاص بفيجوال ستوديو 2008

كود :
Vbc -?
}}}
تم الشكر بواسطة:
#2
مترجم سطر الأوامر الخاص بفيجوال بايزيك 2008 vbc.exe
هناك العديد من التقنيات التي يمكنك استخدامها لترجمة الكود المصدري لفيجول بايزيك 2008 فبالإضافة لبيئة التطوير وبعض الأدوات من شركات أخرى تتعامل مع واجهة الدوت نيت يمكنك إنشاء مجمعات assemblies باستخدام مترجم سطر الأوامر الخاص بفيجوال بايزيك 2008 ومع أنه ربما لن تقوم ببناء البرامج على مستوى واسع باستخدام مترجم سطر الأوامر إلا أنه يبقى من الضروري أن تفهم كيف يمكنك ترجمة ملفاتك من النوع *.vb يدويا ويمكننا هنا ذكر بعض أسباب احتياجك للإلمام بهذه العملية:
• السبب الواضح الأول هو حقيقة أنه ربما لا يكون لديك نسخة من فيجول ستوديو 2008
• قد تكون في مؤسسة تعليمية تمنعك من توليد الكود باستخدام واجهات التطوير الرسومية
• قد تريد إنشاء أدوات ترجمة آلية للدوت نيت
• قد تريد تعميق فهمك لـ VB2008 فعندما تقوم باستخدام واجهات التطوير الرسومية فأنت تستخدم ضمنا vbc.exe وأنت بهذا تتعرف على ما يحدث وراء الكواليس عند عملية الترجمة
• فائدة إضافية وهي أنك تصبح مرتاحا مع استخدام أدوات الدوت نيت التي تعمل من موجه سطر الأوامر
}}}
تم الشكر بواسطة:
#3
بناء تطبيقات فيجول بايزيك 2008 باستخدام vbc.exe
لاستعراض كيفية بناء تطبيق دوت نيت بدون استخدام واجهة التطوير الرسومية سنقوم ببناء مجمع مؤلف من ملف واحد TestApp.exe وذلك باستخدام مترجم سطر الأوامر الخاص بفيجوال بايزيك 2008 مع الـ Notepad وسنحتاج في البداية هنا لبعض الكود المصدري ولهذا الغرض قم بفتح الـ notepad وأدخل الكود التالي

كود :
' A Simple Vb 2008 application
Imports System
Module TestApp
Sub Main()
Console.WriteLine("Testing! 1, 2, 3")
End Sub
End Module
وبعد انتهائك احفظ الملف باسم TestApp.vb في مجلد ملائم مثلا C:\VbcExample
دعنا الآن نتعرف على الخيارات الأساسية لمترجم VB2008 حيث تكون نقطة الاهتمام الأولى هي تحديد اسم المجمع الذي سيتم إنشاؤه حيث يكون كل احتمال ممثل بقيمة ممررة إلى vbc.exe عبر محددات سطر الأوامر وفيما يلي أهم هذه الخيارات وشرحها
• /out اسم المجمع الذي سيتم إنشاؤه حيث تكون القيمة الافتراضية هي اسم الملف *.vb الأول
• /target:exe يقوم ببناء تطبيق كونسول تنفيذي وهو الخيار الافتراضي
• /target:library يقوم ببناء ملف *.dll وحيد
• /target:module يقوم ببناء module وهي وحدة تكوين المجمعات متعددة الملفات
• /target:winexe يقوم ببناء تطبيق ويندوز تنفيذي
ورغم أنه يمكنك بناء تطبيقات ويندوز باستخدام target:exe إلا أن استخدام target:winexe يمنع نافذة الكونسول من الظهور عند تشغيل البرنامج. ولترجمة TestApp.vb إلى تطبيق كونسول باسم TestApp.exe افتح موجه سطر الأوامر الخاص بفيجوال ستوديو 2008 وانتقل إلى المجلد الذي قمت بحفظ الملف المذكور فيه

كود :
cd C:\VbcExample
ثم قم بإدخال الأمر التالي

كود :
vbc /target:exe TestApp.vb
وهنا لم نستخدم الخيار out لهذا سيتم تسمية الملف التنفيذي TestApp.exe تلقائيا ليوافق اسم ملف الكود المصدري المدخل فإن أردنا تسمية الملف التنفيذي باسم مختلف يمكننا إدخال الأمر التالي عند سطر الأوامر

كود :
vbc /target:exe /out:MyFirstApp.exe TestApp.vb
كما تجدر ملاحظة أن بعض خيارات مترجم VB2008 يكون لها نسخة مختصرة مثل t بدلا من target لذا يمكنك اختصار الإدخال على لوحة المفاتيح بالشكل التالي

كود :
vbc /t:exe TestApp.vb
وبما أن بعض هذه الخيارات افتراضية مثل t:exe لذا يمكن حذفها وبالتالي يمكن ترجمة الملف TestApp.vb كما يلي

كود :
vbc TestApp.vb


الوصول إلى مجمعات خارجية باستخدام vbc.exe
لاستعراض عملية الوصول إلى مجمعات خارجية سنقوم بتعديل الملف TestApp.vb ليقوم بعرض صندوق الرسائل الخاص بنماذج ويندوز ولعمل هذا افتح الملف TestApp.vb وعدله لتصبح محتوياته كالتالي

كود :
'A simple vb2008 appilication
Imports System

'Add This
Imports system.Windows.Forms

Module TestApp
Sub Main()
Console.WriteLine("Testing! 1, 2, 3")

'Add This
MessageBox.Show("Hello!")
End Sub
End Module
لاحظ أنه لإضافة مرجع لمجال الأسماء System.Windows.Forms في VB2008 يتم استخدام الكلمة المحجوزة Imports وعند سطر الأوامر عليك إعلام vbc.exe عن أي مجمع يحتوي على مجالات أسماء مستوردة ولهذا كي تستطيع استخدام الفئة MessageBox يجب عليك استخدام الخيار reference لتحديد مرجع للمجمع System.Windows.Forms.DLL كما يلي

كود :
vbc /r:System.Windows.Forms.dll TestApp.vb
فإن قمت بتشغيل التطبيق الآن ستلاحظ ظهور صندوق الرسائل المحتوى في مجال الأسماء المضاف.
وإن كنت بحاجة للوصول إلى عدة مجمعات خارجية باستخدام vbc.exe عندها عليك ذكر أسماء تلك المجمعات بقائمة ضمن سطر الأوامر مفصولة بفاصلة كما في المثال

كود :
vbc /r:System.Windows.Forms.dll, System.Drawing.dll *.vb
}}}
تم الشكر بواسطة:
#4

ترجمة عدة ملفات مصدرية باستخدام vbc.exe

تم إنشاء النسخة الحالية من التطبيق TestApp.exe بواسطة ملف *.vb وحيد والحقيقة هي أن معظم المشاريع تكون مؤلفة من عدة ملفات *.vb وذلك يبقي الكود أكثر مرونة وتنظيما وسنفترض أنه لديك فئة إضافية موجودة في الملف HelloMsg.vb ومحتويات الملف كانت كما يلي

كود :
Imports System
Imports System.Windows.Forms

Class HelloMessage
Sub Speak()
MessageBox.Show("Hello Again")
End sub
End class
وبافتراض أنك قمت بحفظ الملف HelloMsg.vb في نفس المجلد الذي قمت بحفظ الملف TestApp.vb فيه. قم بتعديل الكود في TestApp.vb ليستخدم الفئة الجديدة كما يلي

كود :
'A simple vb2008 appilication
Imports System

'Don't need This any More
'Imports system.Windows.Forms

Module TestApp
Sub Main()
Console.WriteLine("Testing! 1, 2, 3")

'Don't need This any More either
'MessageBox.Show("Hello!")

'Exercise the HelloMessage Class!
Dim hello as new HelloMessage()
hello.Speak()
End Sub
End Module
يمكنك الآن ترجمة ملفات *.vb كما يلي

كود :
vbc /r:System.Windows.Forms.dll TestApp.vb HelloMsg.vb
كما يمكنك مترجم VB2008 من استخدام المحارف البديلة * و ؟ في سطر الأوامر لإخبار vbc.exe بأنك تريد استخدام جميع ملفات *.vb المحتواة في مجلد المشروع كما يلي

كود :
vbc /r:System.Windows.Forms.dll *.vb
}}}
تم الشكر بواسطة:
#5
العمل مع ملفات الاستجابة الخاصة بـ vbc.exe
إذا كنت تريد بناء تطبيق VB2008 معقد يصبح عندها استخدام سطر الأوامر صعبا وخاصة عندما يكون عدد المجمعات وملفات *.vb كبيرا وقد تم تسهيل الأمر عليك هنا باستخدام ملفات الاستجابة response files وهي تحتوي على جميع التعليمات التي ستستخدم في عملية البناء الحالية وهذه الملفات تمتلك اللاحقة rsp ويمكننا إنشاء ملف استجابة لتطبيقنا السابق بالمحتويات التالية مع ملاحظة أن أسطر التعليقات تبدأ بالمحرف #

كود :
# This is the response file
#for the TestApp.exe app

#External assembly references.
/r:System.Windows.Forms.dll

#output and files to compile (using wildcards syntax).
/t:exe /out:TestApp.exe *.vb
وسنفترض أنه قد تم حفظه مع الملفات السابقة بنفس المجلد عندها يمكننا القيام بترجمة المشروع باستخدام ملف الاستجابة وذلك بكتابة @ يتبعها اسم ملف الاستجابة في سطر أوامر vbc.exe

كود :
vbc @TestApp.rsp
كما يمكنك تحديد عدة ملفات استجابة كدخل

كود :
vbc @FirstFile.rsp @SecondFile.rsp @ThirdFile.rsp
فعندما تستخدم هذه الطريقة يجب عليك ملاحظة أن المترجم يستخدم محددات سطر الأوامر بنفس ترتيب ورودها ولهذا فأي أمر في ملف rsp لاحق قد يتجاوز خيارات موجودة في ملفات rsp سابقة ولاحظ أيضا أن المحددات المكتوبة قي سطر الأوامر قبل ملف الاستجابة سوف يتم تجاوزها باستخدام الأوامر الموجودة في ملف rsp ولهذا فإن قمت بإدخال

كود :
vbc /out:MyCoolApp.exe @TestApp.rsp
فسوف يبقى اسم المجمع TestApp.exe وذلك بسبب المحددات الموجودة في الملف TestApp.rsp وإن قمت بوضع المحددات بعد ملف rsp في سطر الأوامر فستقوم تلك المحددات بتجاوز الأوامر الموجودة في ملف rsp فإن قمت بإدخال السطر التالي فسوف يصبح اسم المجمع الناتج MyCoolApp.exe

كود :
vbc @TestApp.rsp /out:MyCoolApp.exe


ملف الاستجابة الافتراضي
آخر نقطة سيتم التحدث عنها هنا هو أن مترجم VB2008 مرتبط بملف استجابة افتراضي اسمه vbc.rsp وهو متواجد في نفس المجلد الموجود فيه vbc.exe حيث يمكنك فتحه والإطلاع على محتوياته باستخدام notepad فعندما تقوم ببناء تطبيق VB2008 باستخدام vbc.exe فسوف يتم استخدام ملف الاستجابة الافتراضي كمرجع حتى عندما تقوم باستخدام ملفات استجابة مخصصة وإن كنت لسبب ما لا ترغب باستخدام ملف الاستجابة الافتراضي يمكنك استخدام الخيار noconfig كما يلي

كود :
vbc @TestApp.rsp /noconfig
}}}
تم الشكر بواسطة:
#6
خاتمة
كما يمتلك مترجم سطر أوامر vb2008 العديد من الخيارات الأخرى التي يمكن استخدامها للتحكم بمجمع دوت نيت المولد وعند هذه النقطة يجب أن تكون قد أصبحت ملما بالأساسيات التي تمكنك من استخدام باقي الخيارات التي يمكنك الإطلاع عليها من خلال الوثائق المرفقة مع بيئة التطوير




مترجم بتصرف
}}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم