Большинство современных приложений Windows требуют установки .NET Framework. Например, NET Framework 4.8 устанавливается по умолчанию на Windows 11/10 и Windows Server 2022/2019. Однако некоторые старые и устаревшие приложения требуют установки .NET Framework 3.5, 2.0 или даже 1.0.
Установка .NET Framework 3.5 в Windows 11 и 10
Убедитесь, что .NET Framework 3.5 (включает .NET 2.0 и 3.0) не установлен на вашем компьютере. Откройте консоль PowerShell от имени администратора и выполните команду:
Get-WindowsCapability -Online -Name NetFx3
В нашем случае .NET 3.5 не установлен (State=NotPresent
).
В Windows 10/11 вы можете установить .Net Framework из папки Включить или выключить функции Windows панель:
- Выполните команду
optionalfeatures.exe
; - Выберите .NET Framework 3.5 (включает .NET 2.0 и 3.0) в списке компонентов, нажмите OK;
- Если ваш компьютер имеет прямой доступ в Интернет, выберите «Пусть Windows Update загрузит файлы за вас»;
- Windows загрузит и установит последнюю версию компонента .NET Framework 3.5 с серверов Microsoft Update.
- Использование DISM:
DISM /online /Enable-Feature /FeatureName:"NetFx3"
- Или с помощью PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName "NetFx3"
Если ваш компьютер не подключен к Интернету или отключен от сети, то при установке .NET 3.5 возникнет ошибка:
Windows couldn’t complete the requested changes. The changes couldn’t be completed. Please reboot your computer and try again Error code: 0x8024402C
В этом случае вы можете вручную установить NET 3.5 с установочного носителя Windows. Для этого вам понадобится установочный USB-накопитель или файл ISO-образа с вашей версией Windows (как проверить версию Windows в ISO-образе):
- Подключите носитель с установочным образом Windows к компьютеру. В моем случае у меня есть файл ISO-образа Windows 11. Щелкните на файле и выберите Монтировать чтобы подключить образ к виртуальному DVD-приводу (или воспользуйтесь командой PowerShell:
Mount-DiskImage -ImagePath "C:\ISO\Windows11-22h2.iso"
); - В моем случае виртуальному диску с образом была присвоена буква диска
E:
(мы будем использовать эту букву диска в следующих командах); - Чтобы установить .Net 3.5 из исходных файлов компонентов на установочном диске, выполните команду:
DISM /online /enable-feature /featurename:NetFX3 /All /Source:E:\sources\sxs /LimitAccess
Или (аналогичная команда PowerShell):
Add-WindowsCapability -Online -Name NetFx3~~~~ -Source E:\Sources\SxS
Чтобы убедиться, что .NET Framework успешно установлен, выполните команду:
Get-WindowsCapability -Online -Name NetFx3~~~~
Name : NetFX3~~~~ State : Installed DisplayName : .NET Framework 3.5 (includes .NET 2.0 and 3.0) Description : .NET Framework 3.5 (includes .NET 2.0 and 3.0) DownloadSize : 72822163 InstallSize : 496836410
Перечислите версии .NET Framework, установленные на вашем компьютере:
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name version -EA 0 | Where { $_.PSChildName -Match ‘^(?!S)\p{L}’} | Select PSChildName, version
Как установить .NET Framework 3.5 на Windows Server 2022/2019/2016
На Windows Server 2022, 2019, 2016 и 2012 R2 можно установить NET Framework 3.5 несколькими способами:
- Через диспетчер сервера: Добавить роли и возможности -> Возможности -> .NET Framework 3.5 Возможности -> .NET Framework 3.5 (включает .NET 2.0 и 3.0 );
- Использование DISM:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
- С помощью PowerShell:
Install-WindowsFeature NET-Framework-Core
В этом случае все необходимые файлы установки .NET 3.5 для вашей версии Windows Server будут загружены с серверов Windows Update. Чтобы этот метод установки работал, необходимо проверить следующее:
- Ваш Windows Server должен иметь прямой доступ в Интернет. Параметры прокси-сервера и брандмауэра не должны ограничивать доступ к серверам Windows Update;
- Ваш хост не должен быть настроен на получение обновлений с локального сервера WSUS. Проверьте текущие параметры Windows Update с помощью отчета о результатах групповой политики (
rsop.msc
) или непосредственно в реестре;Проверьте значение параметра UseWUServer параметр в реестре:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "UseWUServer" | select -ExpandProperty UseWUServer
Если значение параметра1
, то ваш хост настроен на получение обновлений Windows с локального сервера WSUS. В этом случае вы получите ошибку 0x800F0954 при установке .NET 3.5. Измените параметр реестра на0
или удалите его, чтобы напрямую подключиться к серверам Microsoft Windows Update.
Если вы можете получить доступ к Интернету с узла Windows Server, но он настроен на получение обновлений от WSUS, вы увидите ошибку 0x800f081f при установке NET Framework.
Решение: Установите .Net 3.5 в режиме онлайн с серверов Microsoft и игнорируйте локальный WSUS:
- Экспортируйте текущие параметры Windows Update из ключа реестра HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate в REG-файл:
reg export HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate c:\WindowsUpdateRegFile.reg
- Удалите этот ключ (
Remove-Item -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate -Recurse
) и перезапустите службу:net stop wuauserv & net start wuauserv
- Запустите установку .Net 3.5 из Интернета:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
- После завершения установки верните прежние настройки WU: импортируйте reg-файл (
Reg import c:\WindowsUpdateRegFile.reg
) и снова перезапустите службу Windows Update
Если с сервера нет прямого доступа в Интернет, то при попытке установить .NET 3.5 на Windows Server через Server Manager вы получите ошибку 0x800F081F (Исходные файлы не могут быть найдены), 0x800F0950, 0x8024402c, 0x800F0906, или 0x800F0907 (в зависимости от версии Windows Server).
Хотя .NET Framework 3.5 указан как функция Windows Server 2022/2019/2016/2012R2, его двоичные файлы отсутствуют в хранилище компонентов Windows (концепция Features on Demand). Это сделано для уменьшения размера образа операционной системы на диске. Проверить, доступны ли исходные файлы .NET Framework 3.5 в локальном хранилище компонентов Windows Server, можно с помощью команды:
Get-WindowsFeature *Framework*
Как вы можете видеть, статус функции NET-Framework-Core следующий Удалено.
Чтобы установить NET-Framework-Core, вам понадобится дистрибутив с вашей версией Windows Server в виде ISO-файла или в распакованном виде в сетевой папке. Смонтируйте ISO-файл с установочным образом Windows Server в качестве виртуального диска (например, диска D:). Теперь вы можете установить функции Windows из графического интерфейса или с помощью PowerShell.
Функцию .Net 3.5 можно установить из графической консоли Server Manager:
- Выберите .Net Framework 3.5 как и ранее, но прежде чем нажать кнопку УстановитьНажмите на маленькую ссылку Укажите альтернативный путь к источнику в нижней части формы;
- Укажите путь к папке Component Store (SXS) в дистрибутиве Windows Server. Если вы смонтировали ISO-образ в качестве виртуального диска, путь может выглядеть следующим образом
D:\sources\sxs
. Это также может быть сетевой ресурс, куда вы скопировали файлы дистрибутива (например,\\fs1\iso\ws2016\sources\sxs
). Затем нажмите OK.
Гораздо проще установить .NET Framework 3.5 из поднятой командной строки или консоли PowerShell. Просто выполните команду:
Dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess
D:\
это диск с исходными файлами Windows Server.[LimitAccess
Параметр запрещает DISM подключаться к серверам Windows Update для получения бинарных файлов функций. Используются только исходные файлы в указанной папке.
Если вы хотите установить функцию Windows Server с помощью PowerShell, используйте команду Add-WindowsFeature:
Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs
После завершения установки компонента перезагрузка сервера не требуется.
Вы также можете вручную скопировать 2 CAB-файла microsoft-windows-netfx3...
из \sources\sxs
папки установочного образа Windows Server. В данном случае для установки .NET 3.5 достаточно выполнить команду:
dism /online /Add-Package /PackagePath:C:\distrib\net35\microsoft-windows-netfx3-ondemand-package~31bf3856ad364e35~amd64~~.cab.
Настройка параметров автономной установки .Net Framework с помощью GPO
Вы можете настроить определенные параметры для установки компонентов Windows из локального источника или Windows Update даже при использовании WSUS с помощью параметра групповой политики Указание параметров для дополнительной установки компонентов и восстановления компонентов (находится в разделе GPO Конфигурация компьютера -> Административные шаблоны -> Система).
gpedit.msc
). В среде Active Directory можно создать GPO для всех компьютеров/серверов с помощью консоли GPMC (gpmc.msc
).Здесь можно указать, что при установке или восстановлении компонентов Windows следует всегда загружать файлы с серверов Windows Update (Интернет), а не с локального сервера WSUS (параметр «Загрузка содержимого для ремонта и дополнительных функций непосредственно с Windows Update вместо служб Windows Server Update Services» вариант).
Вы также можете указать путь к общей папке с компонентами Windows Server, которую вы хотите использовать для автономной установки, в параметре «Альтернативный путь к исходному файлу» параметр:
- Укажите путь к общей сетевой папке в формате UNC (
\\fs01\distr\ws22\sxs
) (здесь можно указать несколько путей UNC, разделенных точками с запятой:\\fs01\ws22\sxs;\\man02\ws22\sxs;\\fs03\sxs
) - Также можно указать WIM-файл в качестве источника:
WIM:\\fso1\distr\ws16\install.wim:2
(в данном случае,2
это индекс образа вашей редакции Windows Server в WIM-файле. Перечислить доступные редакции Windows Server в WIM-файле можно с помощью команды:DISM /Get-WimInfo /WimFile:"\\server\distr\ws2016\install.wim"
)