Полезное
Что значит ошибка инициализации NET Framework 4, как установить или переустановить платформу
Как исправить ошибку инициализации .NET Framework 4
NET Framework 4 не устанавливается – ошибка инициализации
Пользователи операционной системы корпорации Майкрософт различных версий могут столкнуться с сообщением о невозможности запуска приложения, по причине того, что операционная система не может инициализировать .NET Framework – компоненты, необходимой для работы ряда приложений. Возможный вид сообщения об ошибке:
Данная ошибка возникает в тех случаях, когда на компьютере пользователя отсутствует нужная версия или установленная повреждена. Рассмотрим пути устранения данной неполадки.
Устранение проблемы путем установки/переустановки
Разберем основной способ устранения ошибки:
- Сначала необходимо скачать установочный дистрибутив. Рекомендуется устанавливать самую новую версию с официального сайта Майкрософт. На данный момент последней версией является 4.7.1. Скачать автономный установщик можно по ссылке — https://www.microsoft.com/ru-ru/download/details.aspx? />
- Если программа установки обнаружит, что на компьютере пользователя уже имеется устанавливаемая версия, то будет предложено выполнить переустановку (восстановление).
Перезагрузите компьютер. Теперь программа должна работать. Если проблема решена, то больше можно не предпринимать никаких действий.
Существуют ситуации, когда нужно удалить пакет .NET Framework и затем его снова установить. Это может быть необходимо, когда штатный установщик не восстанавливает параметры компонента должным образом. Удалить компонент в Windows 7/8.1/10 можно через панель управления (открывается через «пуск» — кнопка с логотипом Windows). Найдите и выберите в списке установленных программ требуемую версию, затем нажмите «Удалить»:
Откроется мастер удаления приложения. Следуйте указаниям мастера. Когда процесс удаления будет завершен, перезагрузите компьютер и запустите скачанный установочный дистрибутив. Если проблема не исчезает, можно воспользоваться утилитами, предназначенными для исправления установок компонента.
Использование стандартных утилит для устранения неполадок
Кроме вышеописанного способа, можно воспользоваться другими вариантами:
-
.NET Framework Repair Tool попытается восстановить уже установленную редакцию. Скачать её можно по ссылке — https://www.microsoft.com/en-us/download/details.aspx? >
- .NETFrameworkCleanupTool – выполняет полное удаление всех компонентов, выбранной редакции для последующей переустановки. Скачать можно здесь — https://msdnshared.blob.core.windows.net/media/2017/11/dotnetfx_cleanup_tool.zip. Вычищает все разделы реестра, касающиеся выбранной версии, удаляет все настройки. Подходит в тех случаях, когда другие средства не помогают. После работы данной утилиты, как правило, новая установка проходит без проблем и работоспособность приложений восстанавливается. После запуска утилиты предлагается выбрать, какая редакция будет удалена:
Нужно помнить, что данная утилита не позволит удалить компонент операционной системы. Например, в Windows 7 таким образом не получится удалить редакцию 2.0, а в последней версии Windows 10 — 4.7.
Как исправить ошибку инициализации .NET Framework 4
Система активации среды CLR определяет версию среды CLR, которая будет использоваться для выполнения управляемого кода приложения. В некоторых случаях система активации может не найти версию среды CLR для загрузки. Эта ситуация обычно возникает в том случае, если приложение требует версии среды CLR, которая недопустима или не установлена на данном компьютере. Если запрошенная версия не найдена, то система активации среды CLR получает код ошибки HRESULT из вызванных функции или интерфейса, и может отобразить сообщение об ошибке для пользователя, запустившего приложение. Данный раздел содержит список кодов HRESULT, и объясняет, как можно предотвратить отображения сообщения об ошибке.
Среда CLR предоставляет инфраструктуру ведения журнала для облегчения отладки проблем активации среды CLR, как описано в Практическое руководство. Отладка проблем при активации CLR. Эта инфраструктура не следует путать с журналами привязки сборок, которая полностью отличаются.
API активации среды CLR возвращают HRESULT,чтобы сообщить о результатах операции активации основному приложению. Основные приложения среды CLR должны всегда обращения к этими возвращаемым значениям прежде чем предпринимать какие-либо дополнительные действия.
Если системе активации среды CLR не удается загрузить правильную версию среды выполнения, которая требуется приложению, она отображает сообщение об ошибке, чтобы сообщить пользователю, что компьютер не настроен должным образом для запуска приложения, и предоставить с возможность исправить ситуацию. Обычно в такой ситуации отображается следующее сообщения об ошибке. Пользователь может выбрать Да, чтобы перейти к веб-сайту Майкрософт, где он может загрузить правильную версию платформы .NET Framework для приложения.
Типичное сообщение об ошибке инициализации
В распоряжении разработчика имеются различные параметры для контроля сообщений об ошибках инициализации платформы .NET Framework. Например, можно использовать флаг API для предотвращения отображения сообщения, как описано в следующем разделе. Тем не менее, причину, по которой приложение не смогло загрузить нужную среду выполнения, нужно устранить. В противном случае приложение не сможет работать, или часть функций будет недоступна.
Для разрешения проблем и наилучшего взаимодействия с пользователем (меньшее количество сообщений об ошибках), рекомендуется следующее:
Для приложений .NET Framework 3.5 (и более ранних версий): Настройте приложение так, чтобы оно поддерживало платформы .NET Framework 4 или 4.5 (см. инструкции).
Для приложений .NET Framework версии 4: Установите распространяемый пакет платформы .NET Framework 4 в составе установки приложения. См. раздел Руководство по развертыванию .NET Framework для разработчиков.
Отображение сообщения об ошибках для уведомления о том, что запрошенная версия платформы .NET Framework не найдена можно рассматривать как полезная служба или источник раздражения для пользователя. В любом случае, можно управлять данным пользовательским интерфейсом, передавая флаги в API активации.
Метод ICLRMetaHostPolicy::GetRequestedRuntime принимает в качестве входных данных элемент перечисления METAHOST_POLICY_FLAGS. Можно включить флаг METAHOST_POLICY_SHOW_ERROR_DIALOG для запроса сообщения об ошибке, если запрошенная версия среды CLR не будет найдена. По умолчанию сообщение об ошибке не отображается. (Метод ICLRMetaHost::GetRuntime не поддерживает этот флаг и не предоставляет иных способов отобразить сообщение об ошибке).
Windows предоставляет функцию SetErrorMode, с помощью которой можно объявить, должны ли сообщения об ошибках отображаться как результат выполнения кода, выполняемого внутри вашего процесса. Можно указать флаг SEM_FAILCRITICALERRORS для предотвращения отображения сообщения об ошибке.
Однако в некоторых случаях важно переопределить параметр SEM_FAILCRITICALERRORS установленный процессом приложения. Например, если имеется собственный компонент COM, в котором находится среда CLR и, расположенный в процессе, для которого установлен флаг SEM_FAILCRITICALERRORS, можно переопределить флаг в зависимости от влияния отображения сообщений об ошибках в пределах данного процесса приложения. В этом случае можно воспользоваться одним из следующих флагов для переопределения SEM_FAILCRITICALERRORS:
Используйте METAHOST_POLICY_IGNORE_ERROR_MODE с методом ICLRMetaHostPolicy::GetRequestedRuntime.
Используйте RUNTIME_INFO_IGNORE_ERROR_MODE с функцией GetRequestedRuntimeInfo.
Среда CLR включает набор узлов для различных сценариев и все эти узлы отображают сообщение об ошибке, если у них возникают проблемы с загрузкой необходимой версию среды времени выполнения. Следующая таблица содержит список узлов и их политик сообщения об ошибке.
Политика сообщения об ошибках
Можно ли отключить сообщений об ошибке?
Узел управляемых EXE-файлов
Запускает управляемые exe-файлы.
Отображается в случае отсутствия версии платформы .NET Framework
Узел управляемого COM
Загружает управляемые компоненты COM в процесс.
Отображается в случае отсутствия версии платформы .NET Framework
Да, установив флаг SEM_FAILCRITICALERRORS
Запускает приложения ClickOnce.
Отображается в случае отсутствия версии платформы .NET Framework, начиная с .NET Framework 4.5
Запускает приложения WPF XBAP.
Отображается в случае отсутствия версии платформы .NET Framework, начиная с .NET Framework 4.5
Система активации среды CLR обеспечивает такую же поведение и пользовательский интерфейс на Windows 8, как и на других версиях операционной системы windows, за исключением случаев, когда он обнаруживает проблемы с загрузкой среды CLR 2.0. Windows 8 включает .NET Framework 4.5, в которой используется среда CLR версии 4.5. Однако Windows 8 не включает .NET Framework 2.0, 3,0 или 3.5, которые все используют среду CLR 2.0. В результате приложения, зависящие от среды CLR 2.0, по умолчанию не будут работать на Windows 8. Вместо этого они выводят следующее диалоговое окно, чтобы пользователи могли устанавливать .NET Framework 3.5. Пользователи могут также включить .NET Framework 3.5 из Панели управления. Обе возможности рассматриваются в статье Установка платформы .NET Framework 3.5 в Windows 8, Windows 8.1 и Windows 10.
Приглашение для установки .NET Framework 3.5 по запросу