كيف يمكنني الحصول على قائمة بالملفات المحملة حسب عمليتي؟

StackOverflow https://stackoverflow.com/questions/1976608

  •  21-09-2019
  •  | 
  •  

سؤال

أحاول القيام بنشر سريع وقذر لمشروع. اعتقدت أنه سيكون من السهل تشغيل عمليتي ، واستخدم بعض الأدوات للاستيلاء على قائمة بجميع الملفات المحملة (DLLs) واستخدام هذه القائمة لإنشاء قائمة ملفات نسخ لنشر الاختبار الخاص بي.

فكر في استخدام Filemon ولكن هناك الكثير من الضوضاء هناك. إنه مشروع .NET.

شكرًا.

هل كانت مفيدة؟

المحلول

يجب أن تكون قادرًا على استخدام انعكاس .NET لتحليل التطبيق (AppDomain (s) وتفريغ قائمة التجميعات والمواقع المحملة.

var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach (var assembly in loadedAssemblies)
{
    Console.WriteLine(assembly.GetName().Name);
    Console.WriteLine(assembly.Location);
}

نصائح أخرى

عملية المستكشف؟

الدفع AppDomain.GetAssemblies

For Each Ass As Reflection.Assembly In CurrentDomain.GetAssemblies()
    Console.WriteLine(Ass.ToString())
Next

تم الرد على هذا في آخر سؤال سابقا.

جوهره هو استخدام AppDomain الحالي للحصول على قائمة التجميعات والحلقة من خلال موقع المحمل الخاص بهم.

إذا فهمت سؤالك ، للقيام بنشر سريع ، يمكنك ضبط جميع مراجع مشروعك ، لكن الإطار هو الإعداد "نسخة محلية" إلى صواب.

وبهذه الطريقة ، عندما تقوم بإنشاء تطبيقك ، سيكون لديك جميع DLLs المطلوبة في دليل الإخراج الخاص بك (حسنًا ، كل شيء تقريبًا ، لن يتم نسخ المراجع التي تحتاجها المراجع تلقائيًا ، لذلك من الأفضل إضافتها كمرجع محلي أيضًا).

أتمنى أن يساعدك هذا. إذا لم يكن الأمر كذلك ، فأقول لماذا ، سأحاول الاستمرار في هذا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top