سؤال

أبلغنا أحد المستخدمين أنه يمكن حل بعض السلوك الغريب في تطبيقنا بعد تثبيت .NET 4:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

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

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


يقول Explorer Process إن Evemon يعمل تحت 2.0 ، وأنا أميل إلى الشك في أن المشكلة كانت بيئية:

Process Explorer

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

المحلول

من داخل رمز تشغيل التجميع الخاص بك ، يمكنك استخدام النظام.

إذا كنت لا ترغب في تغيير رمز التجميع ، فيمكنك استخدامه عملية المستكشف لرؤية DLLs محملة في العملية في وقت التشغيل. يمكن تحديد إصدار CLR من إصدار mscore.dll.

نصائح أخرى

لا معنى له ، لن يتم تشغيل البرنامج الذي تم استهدافه لـ CLR الإصدار 2.0.50727 تلقائيًا باستخدام .NET 4.0. مطلوب إدخال ملف .config صريح. بالنظر إلى براعة عميلك بملفات .Config ، قد يكون هذا شيئًا فعلته في الواقع ، ثم اكتشفت أن هناك مشكلة.

كما قالت نيكول إن عملية Explorer هي بالتأكيد أسهل طريقة. يمكنك أيضًا الحصول على هذه المعلومات من تفريغ الذاكرة الكامل باستخدام WindDBG.

لاحظ أيضًا أنه مع 4.0 تحصل جنبًا إلى جنب استضافة CLR. قبل 4.0 إذا لم تكن تملك العملية التي أجريتها لا توجد طريقة لمعرفة ما تم تحميل CLR. يمكن أن يكون هذا سببًا لتجارب السلوك الذي وصفته.

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