Ошибки установки и инициализации платформы .NET Framework

Актуальным сейчас является рассмотреть ошибки установки платформы для Виндоус 10, ведь почти 80 пользователей работают с этой ОС в текущий момент.

Ошибки 0x800F0906, 0x800F081F, 0x800F0907

Код 0x800F0906 появляется из-за того, что компьютеру недоступно скачать нужные файлы с Центр обновления.

Код 0x800F081F возникает при указании альтернативного источника инсталляции при условии выполнения одного из условий:

  • В заданном расположении отсутствуют файлы, нужные для установки платформы.
  • Пользователь, пытающийся инсталлировать платформу, не обладает доступом к размещению и файлам.
  • Комплект установщика недопустим или поврежден.

Для решения вопроса нужно убедиться, что путь к источнику задан правильно (x:\sources\sxs), и пользователь имеет доступ, как минимум, на чтение. Чтобы убедиться, нужно обратиться к источнику прямо с компьютера, где появилась проблема, и удостовериться, что установщик содержит полный и допустимый набор файлов. При повторении ошибки можно воспользоваться альтернативным источником инсталляции.

Код 0x800F0907 появляется в случае, когда альтернативный источник инсталляции не указан или недействителен. При этом флажок групповой политики «Введите показатели для установки и восстановления необязательных компонентов» интерпретируется, как «Не загружайте полезные данные из ЦО Windows».

В Windows 10 для исправления подобных ошибок следует выполнить такие действия:

  • Скачать средство для создания носителей Windows и создать образ ISO или установленной ОС.
  • Подготовить групповую политику:
    • Подключить образ ISO.
    • Указать для параметра «Альтернативный путь к исходным файлам» папку ISO sources\sxs.
    • Выполнить операцию gpupdate /force.
    • Установить Framework.

Код 0x800F0922 иногда можно увидеть при обновлении Win 10:

0x800F0922 CBS_E_INSTALLERS_FAILED, ЧТО означает «ошибка обработки программ инсталляции и общих операций».

Для устранения этой проблемы необходимо провести действия:

  1. Открыть папку с установщиком платформы .NET.
  2. Найти папкуSources à выбрать SXS.
  3. Кликнут п.к.м. и выбрать «Свойства».
  4. Во вкладке «Безопасность» убедиться: флажок «Чтение и выполнение» отмечен. А если его нет, то установить.
  5. В поле командной строки ввести команду:

«dism /online /enable-feature /featurename:netfx3 /all /source:c:\sxs /limitaccess» à «ввод».

  1. В поле командной строки ввести команду:

«dism /online /Cleanup-Image /RestoreHealth» à «ввод».

Коды ошибок могут появиться при применении мастера установки, средств DISM или операций Windows PowerShell для включения версии 3.5.

Для Windows 10, Win Server 2012 R2 сервис Framework 3.5 устанавливается м по требованию. Метаданные для этого компонента входят в ОС. Но двоичные и иные файлы, взаимодействующие с компонентом, не включены в ОС.

При включении .NET 3.5 ОС обращается к ЦО Windows, чтобы загрузить недостающую информацию. На это влияет конфигурация сети, настройка проведения обновлений в данной среде. Следовательно, при первой установке платформы Фреймворк могут появляться ошибки.

Устранение неполадок заблокированных установок и удалений .NET Framework

 

При запуске установщика .NET 4.5 и более поздних вариантов может возникать проблемы, препятствующие установке приложения или блокирующие ее. В Win 8, 10, 11 .NET встроен операционную систему и не может быть удален. Его обновления отображаются в разделе «Установленные обновления» в панели управления à «Программы и компонент».

В ОС без предустановленной платформы Framework приложение отображается в разделе «Удаление или изменение программы» панели управления à «Программы и компоненты».

Внимание! Версии 4.Х приложения .NET обновляются автоматически, поэтому нет возможности инсталлировать более раннюю версию .NET 4.Х, ели уже инсталлирована более старшая версия.

Так, в системе Win 10 с полностью автоматическим обновлением невозможно будет инсталлировать Framework 4.7.1 по причине того, что ОС поставляется с установленным приложением Framework 4.8.

Некоторые неполадки и рекомендованные действия

Самые распространенные причины не установки платформы следующие:

  • Уже установлена в ОС. В Win 7, 8, 10 изначально есть этот компонент. В частности, Win XP блокирует установку Framework 3.5 и выше, Win 7 в пиратских сборках может содержать установщик и устанавить его во время инсталляции ОС.
  • Требуется обновить ОС. Иногда выдается сообщение о невозможности установить Framework в данном состоянии ОС. Чаще всего такое сообщение видят пользователи Виндоус 7: требуется обновить систему.
  • Невозможность установить ранний вариант платформы. Если при попытке установки ранней версии .NET процесс блокируется, то в этом случае следует скачать и установить другую, более новую версию платформы. Так, при наличии Фреймворк 3.5 в ОС будет блокироваться установка вариантов 2.0 и 1.0. Для Win 7, 8 можно выключить Нет 3.5 и установить ранний вариант, а затем включить его. В Win 10 невозможно установить ранние версии: при загрузке появится сообщение о несовместимости.
  • Отсутствие промежуточной версии платформы. При установке новой версии требуется наличие на компьютере предыдущего варианта. Для установки 4.5 версии требуется наличие 4, Для установки 4 – наличие 3.5 и т.д. Поэтому до инсталляции новых фоеймворков следует проверить наличие предыдущих.
  • Windows без лицензии. Если отсутствует лицензия, то инсталлировать пакет с фреймворком невозможно.

Майкрософт на официальном сайте предоставляет подробный разбор ошибок и блокировок при установке. Далее приводится часть таблицы с причинами блокировок и рекомендациями:

Сведения о блокировке Рекомендации
.NET 4.5.x/4.6.x/4.7.x /4.8 установлено на компьютере. Действия не требуются
Не удаляется .NET 4.5.x/4.6.x/4.7.x/4.8. Программа нужна другим приложениям на компьютере. Не удалять установленные .NET Framework, потому что приложения зависят от конкретного варианта Framework.
До установки нужно установить обновление KB<номер>. До установки .NET необходимо провести обновление KB, а затем снова запустить установку Framework.

Проблемы совместимости программ

Проведение установки Framework 4.Х при выключенной совместности программ Виндоус завершается ошибкой 1603/блокируется.

«Ассистент совместности программ» выдает сообщение, что Framework мог быть неверно установлен, и рекомендует переустановить его, используя параметр режима совместности программ. Возможно ассистент уже выбрал режим совместности в случае, если установку Framework отменили или ее не получилось запустить.

Инсталлятор Framework не получится запустить при включенном режиме совместности программ. Поэтому для исключения блокировки в редакторе реестра следует выключить режим совместности программ, для чего выполнить действия:

  1. В поле поиска ввести «regedit», и нажать «ввод».
  2. В окне редактора реестра найти подразделы:
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant/Store
  3. В графе «Имя» нужно найти файлы загрузки Framework, установленные раньше: 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, какие именно, зависит от устанавливаемого варианта и удалить их.
  1. Перезапустить компьютер и установщик Framework 4.Х.

Ошибка при инициализации платформы Microsoft .NET Framework

В платформу Framework включена среда CLR («common language runtime» – общая языковая область выполнения), библиотеки кода, базовых классов, язык сценариев и другие. Среда CLR имеет собственным номер, который может не совпадать с версией Framework. Версия CLR увеличивается редко. Так, .NET 4, 4.5 вплоть до 8 выпуска работают с CLR 4, .NET 2.0, 3.0, 3.5 — с CLR 2, а .NET 1.0 – с CLR 1, .NET 1.1 — с CLR 1.1 (3 версии среды исполнения не существует).

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

В процессе активации CLR определяется ее версия для использования при исполнении управляемых команд приложения. Иногда система активизации не находит нужную версию CLR. Такая ситуация возникает тогда, когда приложение требует недопустимую, не установленную или поврежденную на компьютере версию.

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

Коды HRESULT активации CLR

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

Диалоговое окно при ошибке инициализации

При невозможности системы активации исполняющей среды загрузить нужную версию, то выдается сообщение для уведомления пользователя: компьютер не готов запустить приложение, и предлагается вариант исправления ситуации.

В такой ситуации выдается подобное сообщение об ошибке:

okno-oshibki-net-framework

Пользователь должен ответить «Да», после чего его перенаправит на ресурс Microsoft, и он сможет скачать нужную версию .NET.

Исправление ошибок инициализации

Разработчик имеет разные возможности контроля ошибок инициализации «Initialization error».

  • Применение флажка API для запрещения отображения ошибки (подразумевается устранение ошибки позднее).
  • Немедленное устранение причины ошибки.
Внимание!
Важно помнить! При создании новых вариантов Фреймворков соблюдается принцип матрешки: более высокая версия платформы Framework содержит новый функционал с сохранением полного функционала предыдущих вариантов в два этапа:.NET 4 содержит функционал версий 4, 3.5, 3, 2, 1, а .NET 4.8 – версии от 4 и старше.

Устранений проблем из-за инициализации CLR или в конечном итоге платформы .NET происходит следующим образом:

  • Для .NET 3.5 и меньших версий следует настроить платформу .NET 4.
  • Для .NET 4 и старше установите самую последнюю версию. На данный момент самый распространенный пакет — .NET 4.8, который обеспечивает нормальную работу приложений, написанных с помощью любой версии .NET.

Управление сообщениями об ошибках

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

В ОС Windows существует функция «SetErrorMode», позволяющая установить, отображать сообщения об ошибках после выполнения кода или запретить отображение, указав флажок SEM_FAILCRITICALERRORS.

Иногда возникает необходимость переопределения этого параметра. Можно переопределить флажок, исходя из влияния отображения сообщений в пределах конкретного процесса. Для переназначения SEM_FAILCRITICALERRORS можно применить один из флажков:

И наоборот, для включения выдачи сообщения об ошибке включается флажок METAHOST_POLICY_SHOW_ERROR_DIALOG, если нужная версия CLR не обнаружена.

Поведение пользовательского взаимодействия для узлов в CLR

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

Узел CLRОписание Подход к информации об ошибках Отключаемо ли сообщение об ошибке?
Центр управляемых EXE-файлов Инициирует управляемые EXE-файлы. Показывается в случае отсутствия версии платформы .NET Framework Нет
Центр управляемого COMПодгружает управляемые компоненты COM в процесс. Показывается в случае отсутствия версии платформы .NET Framework Да, установив флаг SEM_FAILCRITICALERRORS
Центр ClickOnce Запускает приложения ClickOnce.Отображается в случае отсутствия версии платформы .NET Framework начиная с .NET Framework 4.5 Нет
Центр XBAP Запускает сервисы WPF XBAP. Отображается если отсутствуют версии платформы .NET Framework начиная с .NET Framework 4.5 Нет

Особенности среды исполнения в Windows 8

Система активизации CLR ведет себя в Win 8, как обычно, за исключением процесса загрузки CLR 2.0. В Win 8 встроена Framework 4.5 со средой исполнения 4.5. Однако этот фреймворк не содержит .NET 2.0, 3.0, 3.5, которые работают с CLR 2.0.

Поэтому приложения, требующие CLR 2.0, не смогут работать в Win 8. В результате появится диалоговое окно, предлагающее установить .NET 3.5:

oshibki-net-framework

Помимо возможности скачать и установить данную платформу, пользователи имеют возможность включить ее в панели управления компьютера.

Уточнения

После установки .NET 3.5 на компьютерах с ОС Windows 8 будут нормально выполняться приложения, зависящие .NET 2.0, 3.0, 3.5. Кроме этого, смогут выполняться приложения, требующие .NET 1.0 и 1.1 (если они жестко не настроены для работы в .NET 1.0/1.1).

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

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *