Симптоми
Да предположим, че имате Microsoft .NET Framework 4.7, инсталиран на компютъра. Можете да забележите, че приложенията, които работят на .NET Framework не спазва настройки за съвместимост, които са зададени в системния регистър за AppContext параметри. В този случай когато се опитвате да зададете опция в системния регистър за AppContext флаг, тя се държи, ако стойността, която е указан в системния регистър опция е грешен.
Причина
Когато програмата чете стойността на AppContext ключ в системния регистър, не могат да бъдат извлечени данните. В този случай се приема, че нещо не е наред с начина, по който настройка е указана в системния регистър и връща стойност False приложение.
Решение
За да решите този проблем, използвайте (pp.config) конфигурационния файл на приложението да зададете флаг на желаната стойност.
Добавяне на елемент < AppContextSwitchOverrides >< runtime > раздел на файла app.config . Параметър е един атрибут, тоест стойност, чиято стойност е низ, който представлява ключ или стойност двойка, която съдържа името на ключа и стойността.
За да зададете няколко параметри, отделете всеки ключ ключ или стойност двойка в <AppContextSwitchOverrides> елемент стойност атрибут с точка и запетая. В този случай елемент <AppContextSwitchOverrides> има следния формат:
XML
<AppContextSwitchOverrides value=”switchName1=value1;switchName2=value2” />
Използване на < AppContextSwitchOverrides > елемент за определяне на настройка на конфигурацията е приложение. Тоест той засяга само приложението.
Тъй като app.config файлове са определени приложения, трябва да направите това за всички засегнати приложения.
За повече информация относно AppContext посетете следната тема в уеб сайта на Microsoft Developer Network (MSDN):
Допълнителна информация
Този проблем е въведена като част от работата, за да разрешите AppContext ключове да се използва в AppDomain жизнен цикъл. Това позволява промени, които иначе ще бъде нарушаване да се направи безопасно, дори ако кода, който трябва да използвате ключ AppContext стартирали много рано в AppDomain доведе до.
Въпрос е колко памет се заделя за съхраняване на стойността, която се чете от системния регистър. Ако достатъчно пространство за съхраняване на стойността, която се чете от системния регистър, ще се върнат към стойността по подразбиране False.
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за" и Microsoft работи по решение в предстоящите версии на продукта.