Avatar ·

كيفية الحصول على مسار التجميعة (assembly) التي ينفذ منها الكود الحالي؟

مرحباً بالجميع! أنا مطور C# مبتدئ، وأكتب مشروعاً صغيراً لأتمتة الاختبارات باستخدام MBUnit. واجهت مشكلة: أحتاج إلى الحصول على مسار ملف التجميعة (assembly) التي ينفذ منها الكود الحالي. لماذا؟ أريد أن تقوم الاختبارات بتحميل بيانات الاختبار من مجلد موجود بجانب ملف الاختبار القابل للتنفيذ. إذا استخدمت Environment.CurrentDirectory، فقد يختلف المسار في بيئات مختلفة (Visual Studio، التشغيل من سطر الأوامر، خادم CI)، مما يؤدي إلى أخطاء "الملف غير موجود".

إليك مثال على الكود الذي جربته:

string path = Environment.CurrentDirectory;
Console.WriteLine($"المجلد الحالي: {path}");

المشكلة هي أنه عند تشغيل الاختبارات من MBUnit، يشير هذا المسار إلى مجلد Visual Studio، وليس إلى مجلد تجميعة الاختبار. سمعت أنه يمكن استخدام التأمل (reflection) للحصول على مسار التجميعة نفسها، لكنني لا أفهم كيفية القيام بذلك بشكل صحيح. من فضلكم، أرشدوني إلى طريقة موثوقة للحصول على هذا المسار.