الأعراض
افترض أن لديك Microsoft .NET Framework 4.7 مثبتا على جهاز كمبيوتر. قد تلاحظ أن التطبيقات التي تعمل على .NET Framework لا تحترم إعدادات التوافق المحددة في السجل لتبديلات AppContext. في هذا السيناريو، عند محاولة تعيين خيار تسجيل لعلامة AppContext، فإنه يتصرف كما لو تم تعيين القيمة المحددة في خيار التسجيل إلى False.
السبب
عندما يقرأ البرنامج قيمة مفتاح AppContext في السجل، لا يمكن استرداد البيانات. في هذه الحالة، من المفترض أن هناك خطأ ما في طريقة تحديد الإعداد في السجل، ويتم إرجاع قيمة False إلى التطبيق.
الدقة
لإصلاح هذه المشكلة، استخدم ملف تكوين التطبيق (app.config) لتعيين العلامة إلى القيمة المطلوبة.
أضف عنصر <AppContextSwitchOverrides> إلى <قسم وقت> التشغيل في ملف app.config. يحتوي مفتاح التبديل على سمة واحدة، أي القيمة، التي تكون قيمتها سلسلة تمثل مفتاحا أو زوج قيمة يحتوي على كل من اسم التبديل والقيمة.
لتعريف مفاتيح تبديل متعددة، افصل مفتاح كل مفتاح أو زوج قيمة في < سمة قيمة عنصر AppContextSwitchOverrides> باستخدام فاصلة منقوطة. في هذه الحالة، < يحتوي عنصر AppContextSwitchOverrides> على التنسيق التالي:
XML
<AppContextSwitchOverrides value=”switchName1=value1;switchName2=value2” />
<استخدام عنصر AppContextSwitchOverrides> لتعريف إعداد تكوين له نطاق التطبيق. أي أنه يؤثر على التطبيق فقط.
نظرا لأن ملفاتapp.config خاصة بالتطبيق، يجب عليك القيام بذلك لجميع التطبيقات المتأثرة.
لمزيد من المعلومات حول AppContext، انتقل إلى الموضوع التالي على موقع ويب شبكة مطوري Microsoft (MSDN):
المزيد من المعلومات
تم تقديم هذه المشكلة كجزء من العمل لتمكين مفاتيح AppContext لاستخدامها في وقت مبكر جدا في دورة حياة AppDomain. سمح هذا بإجراء التغييرات التي قد يتم قطعها بأمان، حتى إذا تم تشغيل التعليمات البرمجية التي تحتاج إلى استخدام مفتاح AppContext في وقت مبكر جدا في إحضار AppDomain.
تتعلق المشكلة بكمية الذاكرة المخصصة لتخزين القيمة التي تتم قراءتها من السجل. إذا كانت المساحة المخصصة لتخزين القيمة المقروءة من السجل غير كافية، فستعود إلى القيمة الافتراضية False.
الحالة
أكدت Microsoft أن هذه مشكلة في منتجات Microsoft المدرجة في قسم "ينطبق على" وتعمل Microsoft على حل في الإصدارات القادمة من المنتج.