سؤال

لدي بعض التعليمات البرمجية لتحميل ملف EXE ويعرض كود Cil الخاص به للمستخدم.للقيام بذلك، أستخدم Mono.Cecil و Mono.Cecil.cil.cil.

الآن أريد أن أفعل شيئا مختلفا: أريد أن أعرف ما إذا كان لدى المستخدم Mono.Cecil و Mono.Cecil.cil.cil في نظامه.للقيام بذلك اعتقدت لاستخدام الانعكاس. assembly.load مع mono.cecil و mono.cecil.cel.cil.شيء مثل:

giveacodicetagpre.

لكنني فقط احصل على الخطأ التالي:

giveacodicetagpre.

، وبالطبع، لدي mono.cecil و mono.cecil.cil.cil.أنا لا أستخدم التجمع بشكل صحيح. تحميل؟إذا كان الأمر كذلك، فهل يمكن لأي شخص أن يقول لي كيفية استخدام التجمع. تحميل ليكون قادرا على تحميل Mono.cecil و Mono.cecil.cecil.cel دون البحث عن مسار (لجعل ملف EXE فقط لاستخدامه تحت Windows أو GNU / Linuxمع أحادي)؟

ملاحظة : أنا أعمل تحت Linux Mint مع MonoDevelop 2.6 أو ضمن Windows 7 مع MonoDevelop 2.8.

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

المحلول

يبدو أنك أسيء فهم ما التجميع < / A> لا لتحميل التجميع. أعتقد أن ما تحاول البحث عنه هو ما إذا كان المستخدم لديه Mono.Cecil في GAC. المشكلة هي THTA فقط مسارات البحث التي يتم فيها البحث في AppDomain الحالي عند توفير اسما جزئيا، يتم استخدام GAC فقط عند تقديم الاسم الكامل. تم توثيق ذلك هنا :

توريد اسم التجميع الجزئي للتجميع غير مستحسن. (اسم جزئي يطفل واحدا أو أكثر من الثقافة أو الإصدار أو المفتاح العام الرمز المميز. للحصول على الزائدة التي تأخذ سلسلة بدلا من اسم التجميع كائن، "myassembly، الإصدار= 1.0.0.0.0" هو مثال على اسم جزئي و "myassembly، الإصدار= 1.0.0.0، الثقافة= محايد، PublickeyToken= 18AB3442DA84B47 "هو مثال على اسم كامل.) باستخدام الأسماء الجزئية لها تأثير سلبي على الأداء. بالإضافة إلى ذلك، اسم التجميع الجزئي يمكن تحميل تجميع من الجمعية العالمية ذاكرة التخزين المؤقت فقط إذا كانت هناك نسخة دقيقة من التجميع في دليل قاعدة التطبيق (في التوجيهية أو Appdomainsetup.applicationBase).

معلومات أخرى حول كيفية العثور على مجسات CLR للمجمعات هنا: http://msdn.microsoft.com/en-us/library/aa720133.aspx

هذا هو بالضبط لماذا

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