Что означает ошибка инициализации платформы net framework. Что такое.NET Framework NGEN v4.0.30319 и как его исправить

04.02.2018

Exe (D:b2d9fae8f602b7ea17d2d2Windows6.1-KB958488-v6001-x64.msu) failed with 0x80240017 — (null). CLR для выполнения управляемого кода. Как правило, приложение.NET Framework запускается в той версии среды CLR, в которой оно было собрано, однако для приложений для настольных систем это поведение можно изменить с помощью файла конфигурации приложения (иногда называемого файлом app.config).

В распоряжении разработчика имеются различные параметры для контроля сообщений об ошибках инициализации платформы.NET Framework. См. раздел Руководство по развертыванию.NET Framework для разработчиков. Отображение сообщения об ошибках для уведомления о том, что запрошенная версия платформы.NET Framework не найдена можно рассматривать как полезная служба или источник раздражения для пользователя.

Записи в файле конфигурации считываются в порядке следования, и используется первая указанная версия платформы.NET Framework, которая есть на компьютере пользователя. Скомпилированная версия. NET Framework, присутствующей на компьютере пользователя. Если приложение поддерживает и.NET Framework 3.5, и.NET Framework 4 или более поздние версии, рекомендуется указывать это путем включения в файл конфигурации нескольких записей во избежание ошибок инициализации.NET Framework.

Для проектов приложений Магазина Windows или Windows Phone эти элементы меню недоступны, поскольку изменить политику активации на этих платформах невозможно. ServiceControl operation succeeded! Пакет платформы Microsoft .NET Framework устанавливает среду CLR и связанные файлы, необходимые для работы приложений, разработанных для платформы.NET Framework.

В некоторых случаях система активации может не найти версию среды CLR для загрузки. Эта ситуация обычно возникает в том случае, если приложение требует версии среды CLR, которая недопустима или не установлена на данном компьютере. Если запрошенная версия не найдена, то система активации среды CLR получает код ошибки HRESULT из вызванных функции или интерфейса, и может отобразить сообщение об ошибке для пользователя, запустившего приложение.

Например, можно использовать флаг API для предотвращения отображения сообщения, как описано в следующем разделе. Можно включить флаг METAHOST_POLICY_SHOW_ERROR_DIALOG для запроса сообщения об ошибке, если запрошенная версия среды CLR не будет найдена. По умолчанию сообщение об ошибке не отображается.

Можно указать флаг SEM_FAILCRITICALERRORS для предотвращения отображения сообщения об ошибке. Например, если имеется собственный компонент COM, в котором находится среда CLR и, расположенный в процессе, для которого установлен флаг SEM_FAILCRITICALERRORS, можно переопределить флаг в зависимости от влияния отображения сообщений об ошибках в пределах данного процесса приложения. Все приложения, которые компилируются в среде CLR, должны запускать, или активировать.

Файл конфигурации. Если файл конфигурации приложения содержит записи . NET Framework, и одна из этих версий присутствует на компьютере пользователя, приложение запускается в этой версии. Однако приложения.NET Framework 1.0, 1.1, 2.0, 3.0 и 3.5 не запускаются автоматически в.NET Framework 4 или более поздних версиях, и в некоторых случаях пользователь может получить сообщение об ошибке, и ему будет предложено установить.NET Framework 3.5. Поведение активации может также зависеть от операционной системы пользователя, потому что в состав разных версий Windows входят разные версии.NET Framework.

Система активации среды CLR определяет версию среды CLR, которая будет использоваться для выполнения управляемого кода приложения. В некоторых случаях система активации может не найти версию среды CLR для загрузки. Эта ситуация обычно возникает в том случае, если приложение требует версии среды CLR, которая недопустима или не установлена на данном компьютере. Если запрошенная версия не найдена, то система активации среды CLR получает код ошибки HRESULT из вызванных функции или интерфейса, и может отобразить сообщение об ошибке для пользователя, запустившего приложение. Данный раздел содержит список кодов HRESULT, и объясняет, как можно предотвратить отображения сообщения об ошибке.

Среда CLR предоставляет инфраструктуру ведения журнала для облегчения отладки проблем активации среды CLR, как описано в . Эта инфраструктура не следует путать с , которая полностью отличаются.

API активации среды CLR возвращают HRESULT,чтобы сообщить о результатах операции активации основному приложению. Основные приложения среды CLR должны всегда обращения к этими возвращаемым значениям прежде чем предпринимать какие-либо дополнительные действия.

    CLR_E_SHIM_RUNTIMELOAD

    CLR_E_SHIM_RUNTIMEEXPORT

    CLR_E_SHIM_INSTALLROOT

    CLR_E_SHIM_INSTALLCOMP

    CLR_E_SHIM_LEGACYRUNTIMEALREADYBOUND

    CLR_E_SHIM_SHUTDOWNINPROGRESS

Если системе активации среды CLR не удается загрузить правильную версию среды выполнения, которая требуется приложению, она отображает сообщение об ошибке, чтобы сообщить пользователю, что компьютер не настроен должным образом для запуска приложения, и предоставить с возможность исправить ситуацию. Обычно в такой ситуации отображается следующее сообщения об ошибке. Пользователь может выбрать Да , чтобы перейти к веб-сайту Майкрософт, где он может загрузить правильную версию платформы.NET Framework для приложения.

Типичное сообщение об ошибке инициализации

В распоряжении разработчика имеются различные параметры для контроля сообщений об ошибках инициализации платформы.NET Framework. Например, можно использовать флаг API для предотвращения отображения сообщения, как описано в следующем разделе. Тем не менее, причину, по которой приложение не смогло загрузить нужную среду выполнения, нужно устранить. В противном случае приложение не сможет работать, или часть функций будет недоступна.

Для разрешения проблем и наилучшего взаимодействия с пользователем (меньшее количество сообщений об ошибках), рекомендуется следующее:

    Для приложений.NET Framework 3.5 (и более ранних версий): Настройте приложение так, чтобы оно поддерживало платформы.NET Framework 4 или 4.5 (см. ).

    Для приложений.NET Framework версии 4: Установите распространяемый пакет платформы.NET Framework 4 в составе установки приложения. См. раздел .

Отображение сообщения об ошибках для уведомления о том, что запрошенная версия платформы.NET Framework не найдена можно рассматривать как полезная служба или источник раздражения для пользователя. В любом случае, можно управлять данным пользовательским интерфейсом, передавая флаги в API активации.

Метод принимает в качестве входных данных элемент перечисления . Можно включить флаг METAHOST_POLICY_SHOW_ERROR_DIALOG для запроса сообщения об ошибке, если запрошенная версия среды CLR не будет найдена. По умолчанию сообщение об ошибке не отображается. (Метод не поддерживает этот флаг и не предоставляет иных способов отобразить сообщение об ошибке).

Windows предоставляет функцию SetErrorMode , с помощью которой можно объявить, должны ли сообщения об ошибках отображаться как результат выполнения кода, выполняемого внутри вашего процесса. Можно указать флаг SEM_FAILCRITICALERRORS для предотвращения отображения сообщения об ошибке.

Однако в некоторых случаях важно переопределить параметр SEM_FAILCRITICALERRORS установленный процессом приложения. Например, если имеется собственный компонент COM, в котором находится среда CLR и, расположенный в процессе, для которого установлен флаг SEM_FAILCRITICALERRORS, можно переопределить флаг в зависимости от влияния отображения сообщений об ошибках в пределах данного процесса приложения. В этом случае можно воспользоваться одним из следующих флагов для переопределения SEM_FAILCRITICALERRORS:

    Используйте METAHOST_POLICY_IGNORE_ERROR_MODE с методом .

    Используйте RUNTIME_INFO_IGNORE_ERROR_MODE с функцией .

Среда CLR включает набор узлов для различных сценариев и все эти узлы отображают сообщение об ошибке, если у них возникают проблемы с загрузкой необходимой версию среды времени выполнения. Следующая таблица содержит список узлов и их политик сообщения об ошибке.

Узел CLR

Описание

Политика сообщения об ошибках

Можно ли отключить сообщений об ошибке?

Узел управляемых EXE-файлов

Запускает управляемые exe-файлы.

Нет

Узел управляемого COM

Загружает управляемые компоненты COM в процесс.

Отображается в случае отсутствия версии платформы.NET Framework

Да, установив флаг SEM_FAILCRITICALERRORS

Узел ClickOnce

Запускает приложения ClickOnce.

Отображается в случае отсутствия версии платформы.NET Framework, начиная с.NET Framework 4.5 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 по запросу

В случае установки.NET Framework 3.5, пользователи могут запускать на компьютере с Windows 8 приложения, которые зависят от платформ.NET Framework 2.0, 3,0 или 3.5 на своих компьютерах. Они также могут запускать приложения платформы.NET Framework 1.0 и 1.1, при условии, что эти приложения не настроены явным образом так, чтобы выполняться только на платформе.NET Framework 1.0 или 1.1. См. раздел .

Начиная с.NET Framework 4.5, ведение журналов активации среды CLR было улучшено для включения записи журнала, которые записывают, когда и почему было отображено сообщение об ошибке инициализации. Для получения дополнительной информации см. .


Иногда ошибки.NET Framework NGEN v4.0.30319 и другие системные ошибки Windows могут быть связаны с проблемами в реестре Windows. Несколько программ может использовать файл.NET Framework NGEN v4.0.30319, но когда эти программы удалены или изменены, иногда остаются "осиротевшие" (ошибочные) записи реестра Windows.

В принципе, это означает, что в то время как фактическая путь к файлу мог быть изменен, его неправильное бывшее расположение до сих пор записано в реестре Windows. Когда Windows пытается найти файл по этой некорректной ссылке (на расположение файлов на вашем компьютере), может возникнуть ошибка.NET Framework NGEN v4.0.30319. Кроме того, заражение вредоносным ПО могло повредить записи реестра, связанные с Microsoft Windows. Таким образом, эти поврежденные записи реестра Windows необходимо исправить, чтобы устранить проблему в корне.

Редактирование реестра Windows вручную с целью удаления содержащих ошибки ключей.NET Framework NGEN v4.0.30319 не рекомендуется, если вы не являетесь специалистом по обслуживанию ПК. Ошибки, допущенные при редактировании реестра, могут привести к неработоспособности вашего ПК и нанести непоправимый ущерб вашей операционной системе. На самом деле, даже одна запятая, поставленная не в том месте, может воспрепятствовать загрузке компьютера!

В связи с подобным риском мы настоятельно рекомендуем использовать надежные инструменты очистки реестра, такие как WinThruster (разработанный Microsoft Gold Certified Partner), чтобы просканировать и исправить любые проблемы, связанные с.NET Framework NGEN v4.0.30319. Используя очистку реестра , вы сможете автоматизировать процесс поиска поврежденных записей реестра, ссылок на отсутствующие файлы (например, вызывающих ошибку.NET Framework NGEN v4.0.30319) и нерабочих ссылок внутри реестра. Перед каждым сканированием автоматически создается резервная копия, позволяющая отменить любые изменения одним кликом и защищающая вас от возможного повреждения компьютера. Самое приятное, что устранение ошибок реестра может резко повысить скорость и производительность системы.


Предупреждение: Если вы не являетесь опытным пользователем ПК, мы НЕ рекомендуем редактирование реестра Windows вручную. Некорректное использование Редактора реестра может привести к серьезным проблемам и потребовать переустановки Windows. Мы не гарантируем, что неполадки, являющиеся результатом неправильного использования Редактора реестра, могут быть устранены. Вы пользуетесь Редактором реестра на свой страх и риск.

Перед тем, как вручную восстанавливать реестр Windows, необходимо создать резервную копию, экспортировав часть реестра, связанную с.NET Framework NGEN v4.0.30319 (например, Microsoft Windows):

  1. Нажмите на кнопку Начать .
  2. Введите "command " в строке поиска... ПОКА НЕ НАЖИМАЙТЕ ENTER !
  3. Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER .
  4. Будет выведено диалоговое окно для доступа.
  5. Нажмите Да .
  6. Черный ящик открывается мигающим курсором.
  7. Введите "regedit " и нажмите ENTER .
  8. В Редакторе реестра выберите ключ, связанный с.NET Framework NGEN v4.0.30319 (например, Microsoft Windows), для которого требуется создать резервную копию.
  9. В меню Файл выберите Экспорт .
  10. В списке Сохранить в выберите папку, в которую вы хотите сохранить резервную копию ключа Microsoft Windows.
  11. В поле Имя файла введите название файла резервной копии, например "Microsoft Windows резервная копия".
  12. Убедитесь, что в поле Диапазон экспорта выбрано значение Выбранная ветвь .
  13. Нажмите Сохранить .
  14. Файл будет сохранен с расширением.reg .
  15. Теперь у вас есть резервная копия записи реестра, связанной с.NET Framework NGEN v4.0.30319.

Следующие шаги при ручном редактировании реестра не будут описаны в данной статье, так как с большой вероятностью могут привести к повреждению вашей системы. Если вы хотите получить больше информации о редактировании реестра вручную, пожалуйста, ознакомьтесь со ссылками ниже.


Мы не несем никакой ответственности за результаты действий, совершенных по инструкции, приведенной ниже - вы выполняете эти задачи на свой ​​страх и риск.

Похожие статьи