Помилка 0x800F081F при установці .NET Framework 3.5 в Windows 8 / Server 2012

Не секрет, що в Windows 8 / Windows Server 2012 / R2 .Net Framework 3.5 не йде в комплекті поставки ОС (в рамках концепції Features on Demand), і для його установки вимагає дистрибутив ОС або прямий доступ до сайту оновлень Microsoft. В одній з попередніх статей ми вже показували, як встановити .NET Framework 3.5 в Windows Server 2012 R2 / Windows 8. Днями відразу на декількох системах зіткнулися з помилкою установки .Net Framework 3.5. Проблема спостерігалася при установці компонента як на серверної Windows Server 2012, так і на клієнтської Windows 8.1.

Що найцікавіше, перемогти проблему вийшло різними методами:).

зміст:

  • Неможливо встановити .NET Framework 3.5 в Windows 8 / Windows Server 2012
  • Некоректні поновлення, що перешкоджають установці .NET 3.5
  • Конфлікт Language Pack і .NET Framework 3.5

Неможливо встановити .NET Framework 3.5 в Windows 8 / Windows Server 2012

При онлайн установці .NET Framework 3.5 в Windows 8 через Панель управління (Control Panel -> Programs and Features -> Turn Windows features on or off) з'являється помилка 0x800F0906:

Error: 0x800F0906

Windows could not connect to the Internet to download necessary files. Make sure that you're connected to the Internet and click «Retry» to try again.

Примітка. Яких-небудь проблем з доступом в Інтернет на проблемних машинах не було.

При спробі офлайн установки .NET 3.5 зі змонтованого диска з дистрибутивом ОС (використовувався саме той інсталяційний диск, з якого розгорталася система) командою:

dism / online / enable-feature / featurename: NetFX3 / All / Source: e: \ sources \ sxs / LimitAccess

Виконання команди DISM завершується з помилкою 0x800F081F:

Deployment Image Servicing and Management tool Version: 6.2.9200.16384
Image Version: 6.2.9200.16384
Enabling feature (s) [=========================== 66.5% ======]

Error: 0x800f081f
The source files could not be found.
Use the «Source» option to specify the location of the files that are required to restore the feature. For more informat
ion on specifying a source location, see http://go.microsoft.com/fwlink/?LinkId=243077.
The DISM log file can be found at C: \ Windows \ Logs \ DISM \ dism.log

У локалізованої версії Windows 8 помилка, відповідно:

включення функцій
[=========================== 66.5% ======]
Помилка: 0x800f081f
Не вдалося знайти вихідні файли.

Лог C: \ Windows \ Logs \ DISM \ dism.log містить такі помилки:

2014-10-24 10:11:22, Info DISM DISM Package Manager: PID = 776 TID = 4024 Error in operation: source for package or file not found, ResolveSource () unsuccessful. (CBS HRESULT = 0x800f081f) - CCbsConUIHandler :: Error
2014-10-24 10:11:22, Error DISM DISM Package Manager: PID = 776 TID = 2856 Failed finalizing changes. - CDISMPackageManager :: Internal_Finalize (hr: 0x800f081f)
2014-10-24 10:11:22, Error DISM DISM Package Manager: PID = 776 TID = 2856 The source files could not be found; their location must be specified using the / source option to restore the feature. - GetCbsErrorMsg
2014-10-24 10:11:22, Error DISM DISM Package Manager: PID = 776 TID = 2856 Failed processing package changes with session options - CDISMPackageManager :: ProcessChangesWithOptions (hr: 0x800f081f)
2014-10-24 10:11:22, Error DISM DISM Package Manager: PID = 776 TID = 2856 Failed ProcessChanges. - CPackageManagerCLIHandler :: Private_ProcessFeatureChange (hr: 0x800f081f)
2014-10-24 10:11:23, Error DISM DISM Package Manager: PID = 776 TID = 2856 Failed while processing command enable-feature. - CPackageManagerCLIHandler :: ExecuteCmdLine (hr: 0x800f081f)

Некоректні поновлення, що перешкоджають установці .NET 3.5

В одній зі свіжої статей бази знань Microsoft http://support2.microsoft.com/kb/3005628 описується проблема з серпневими оновленнями безпеки Windows, установка яких призводить до ситуації, коли неможливо встановити компонент .NET Framework 3.5. Йдеться про двох оновленнях:

  • KB2966828 - MS14-046: Security update for the .NET Framework 3.5 on Windows 8.1 and Windows Server 2012 R2: August 12, 2014
  • KB2966827 - MS14-046: Security update for the .NET Framework 3.5 on Windows 8 and Windows Server 2012: August 12, 2014

Як ми бачимо з описів, зазначені оновлення безпеки призначені для .NET Framework 3.5 в Windows 8.1 і Windows Server 2012 R2, причому встановлюються ці поновлення не залежно від того, чи встановлений компонент .NET Framework 3.5 в системі чи ні.

Зрозуміти чи встановлені дані поновлення в системі можна так чи за допомогою такої команди Powershell:

Get-HotFix |? $ _. Hotfixid -like "* 2966828 *"

Якщо будь-яка з цих оновлення встановлено в системі, його потрібно видалити (процедура докладно описана в статті Як правильно видалити оновлення в Windows). Після цього можна встановити .Net Framework 3.5 як зазвичай (він встановиться без помилки), а потім ще раз встановити віддалені поновлення (щоб не залишати дірку в системі).

Порада. Альтернативно на порталі Microsoft замість видалення / установки оновлень рекомендують встановити хотфиксов 3005628. Даний фікс видалить поновлення 2966827 2966828 в системах, де не установлен.NET Framework 3.5. Який спосіб зручніше - вирішувати вам.

Конфлікт Language Pack і .NET Framework 3.5

На машині з Windows 8.1, на якій також була присутня розглянута проблема, зазначені вище оновлень були відсутні. У спробах вирішити проблему перебрали безліч варіантів, починаючи від послідовного видалення всіх оновлень і закінчуючи відновленням сховища компонентів. Але ефекту так і не досягли ...

Як не дивно, допомогло вилучення додаткового (російського) мовного пакета (команда lpksetup).

Після видалення мовного пакета, .NET Framework встановлюється коректно. Потім можна заново встановити потрібний Language Pack.