
.NET Framework 3.5 в Windows 11: установка и решение проблем.
02.09.2022Рассмотрим как установить .NET Framework 3.5 в Windows 11 по требованию, и как порешать наиболее типовые ошибки с этим связанные. Таким образом, исполнительная среда с кучей служб в Windows 11 идёт предустановленной в версии .NET Framework 4.8. Однако некоторые из приложений порой требуют именно .NET Framework 3.5, раз от раза напоминая при попытке запуска какой-то программы произвольным сообщением. Здесь и отвалившийся Paint.net, и не работающее средство исправления ошибок… Вариантов установки .NET Framework 3.5 немало, и я подброшу в вашу копилку знаний свою копеечку. Попробуйте начать с установки через Компоненты Windows. В строке поиска вводим быструю команду на запуск апплета
optionalfeatures.exe
Выставляем чек-бокс напротив соответствующего пункта и забираем среду с Microsoft:
Я предпочитаю это делать, минуя графический интерфейс из командной строки от имени администратора:
Dism /online /Enable-Feature /FeatureName:"NetFx3"
Командлет из Power Shell умеет делать то же самое:
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3"
Все описанные способы работают при условии, если у вас есть выход в интернет. Если выход в сеть недоступен, .NET Framework 3.5 можно вытащить из загрузочного образа или с загрузочной флешки. Если флешка в порту, а образ Windows смонтирован на виртуальный дисковод, опять же через DISM в виде команды:
dism.exe /online /enable-feature /featurename:NetFX3 /Source:ИМЯ-ДИСКА:\sources\sxs /LimitAccess
типа так (D — буква дисковода с файлами Windows):
dism.exe /online /enable-feature /featurename:NetFX3 /Source:D:\sources\sxs /LimitAccess
И на тот и на этот случаи есть батник, который автоматизирует и ускорит ваши действия с работой вне сети:
скачать архив с батником для установки .NET Framework 3.5
Проблемы .NET Framework 3.5 в Windows 11.
Чаще всего установка проходит гладко. Главным фактором здесь является принадлежность компьютера к доменной сетке по принципу «нет домена — нет и проблемы». Но встречаются и ошибки с кодами 0x800f080c, 0x800f0954 и ещё реже другими, чаще всего свидетельствующими (судя по логам с пометками типа CBS_E_INVALID_WINDOWS_UPDATE_COUNT_WSUS
) о том, что установка обновлений на вашу копию Windows настроена через сервер WSUS доменного компьютера при установке системы на машину. А не с серверов Windows напрямую. Не премините взглянуть на логи DISM из проводника в адресной строке
%windir%\logs\cbs
в которых может быть указано на проблемные пакеты:
2022-09-06 22:09:00, Info DISM DISM Package Manager: PID=13756 TID=14532 Processing the top level command token(enable-feature). - CPackageManagerCLIHandler::Private_ValidateCmdLine
2022-09-06 22:09:00, Info DISM DISM Package Manager: PID=13756 TID=14532 Attempting to route to appropriate command handler. - CPackageManagerCLIHandler::ExecuteCmdLine
2022-09-06 22:09:00, Info DISM DISM Package Manager: PID=13756 TID=14532 Routing the command... - CPackageManagerCLIHandler::ExecuteCmdLine
2022-09-06 22:09:00, Info DISM DISM Package Manager: PID=13756 TID=14532 Encountered the option "featurename" with value "NetFx3" - CPackageManagerCLIHandler::Private_GetPackagesFromCommandLine
2022-09-06 22:09:00, Info DISM DISM Package Manager: PID=13756 TID=14532 Encountered an unknown option "featurename" with value "NetFx3" - CPackageManagerCLIHandler::Private_GetPackagesFromCommandLine
2022-09-06 22:09:00, Error DISM DISM Package Manager: PID=13756 TID=14532 Failed to get the Update through CBS. - CDISMPackage::Internal_OpenFeature(hr:0x800f080c)
2022-09-06 22:09:00, Error DISM DISM Package Manager: PID=13756 TID=14532 Failed to get the underlying CBS Feature - CDISMPackage::OpenFeature(hr:0x800f080c)
2022-09-06 22:09:00, Error DISM DISM Package Manager: PID=13756 Feature name NetFx3 is unknown. - CPackageManagerCLIHandler::Private_GetFeaturesFromCommandLine(hr:0x800f080c)
2022-09-06 22:09:00, Error DISM DISM Package Manager: PID=13756 TID=14532 Unknown features were specified on the command-line. - CPackageManagerCLIHandler::Private_GetFeaturesFromCommandLine(hr:0x800f080c)
2022-09-06 22:09:00, Error DISM DISM Package Manager: PID=13756 TID=14532 Failed to get the Feature List from the command line. - CPackageManagerCLIHandler::Private_ProcessFeatureChange(hr:0x800f080c)
2022-09-06 22:09:00, Error DISM DISM Package Manager: PID=13756 TID=14532 Failed while processing command enable-feature. - CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x800f080c)
Так что по порядку. Часто прокатывает работа с реестром через его редактор в ключе
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
и параметром UseWUServer. Если соответствующие ключи и сам параметр там есть, переведите параметр в 0 и перезагрузите компьютер. Помним также, что после перезагрузки параметр UseWUServer может вернуться в 1. На такой случай мне приходилось ставить его в 0, перезапускать службу обновлений Windows и устанавливать среду .NET Framework 3.5 указанными выше способами. Предлагаю вариант как это всё дело можно провернуть в полуавтоматическом режиме с помощью Power Shell. Запускаем консоль от имени администратора и вводим последовательно:
Set-ItemProperty "REGISTRY::HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" UseWUserver -value 0 Get-Service wuauserv | Restart-Service Add-WindowsCapability –Online -Name NetFx3~~~~ Set-ItemProperty "REGISTRY::HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU" UseWUserver -value 1
Этот вариант прокатывал и для установки других дополнительных компонентов в Windows. Опять же, напомню, если соответствующий параметр в реестре имеется.

ключа WindowsUpdate в реестре нет
Если ключей нет, это, повторюсь, говорит о том, что ещё на этапе установки Windows был выбран вариант с автоматическим скачиванием и установкой обновлений. Можете поэкспериментировать с созданием отсутствующих разделов и самого DWORD-параметра UseWUServer. Решить вопрос можно попробовать и через групповую политику
gpedit.msc
в части настроек Конфигурация компьютера — Административные шаблоны — Система. Ищем справа компонент с именем Укажите параметры для установки необязательных компонентов… и Включим его в настройках после двойного щелчка по нему:
У меня Windows Домашняя, но я тоже хочу редактор Групповой политики.
Мне приходилось решать вопрос ручной установкой недостающих пакетов в соответствии с информацией из логов DISM командой из консоли на манер:
dism.exe /online /add-package /packagepath:c:\Windows\servicing\Packages\Microsoft-Windows-NetFx3-OC-Package~31bf3856ad364e35~amd64~~10.0.18362.1.mum
и последующим включением уже известными вам командой или командлетом из первого абзаца. Однажды мне пришлось столкнуться с проблемой, когда DISM зависла после ввода команд на установку среды. Логи выдали запись
DISM DISM Package Manager: PID=12232 TID=11768 CBS session options=0x20100! - CDISMPackageManager::Internal_Finalize
с чем легко справилась та же
Dism /online /enable-feature /featurename:NetFx3 /All /Source:ИМЯ-ДИСКА-с-файлами-Windows:\sources\sxs /LimitAccess
Стоит отметить, что происходившее было связана с проблемами безопасности, так что иногда есть смысл сначала скопировать из флешки или образа содержимое папки в корень системного диска С, а затем уже указывать нужный путь к папке с компонентами. Типа так:
Dism /online /enable-feature /featurename:NetFx3 /All /Source:C:\sources\sxs /LimitAccess
где C:\sources\sxs — папка на диске С со скопированными элементами.
Успехов всем.