При попытке установить RTM версию SQL Server 2012 Standard на свеже-установленную ОС Windows Server 2012 при отсутствии прямого подключения к интернету можно получить ошибку включения зависимой компоненты: NetFx3 -2146498298
При этом процесс установки проходит до конца но не устанавливает основные компоненты SQL Server.
Для решения этой проблемы нам потребуется отдельно установить компоненты .Net Framework 3.5. Так как эти компоненты входят в состав дистрибутива Windows Server 2012, можно вставив установочный диск ОС (в нашем примере буква диска — S:), выполнить команду (с правами Администратора):
Dism /online /enable-feature /featurename:NetFX3 /All /Source:S:\sources\SxS /LimitAccess
Или же мы можем установить эти компоненты через мастер добавления ролей и возможностей Add Roles and Features Wizard в оснастке Server Manager. После того как на шаге Features мы отметим .NET Framework 3.5 Features вызовем окно дополнительной настройки указания места расположения установочных файлов ОС – Specify an alternate source path
Укажем каталог полный пусть к подкаталогу Sources\SxS на нашем DVD-накопителе или сетевой папке, в которую мы предварительно скопировали содержимое установочного диска Windows Server 2012.
Если путь указан верно, то процесс добавления компонент .Net Framework 3.5 пройдёт успешно.
После этого можно заново повторить процедуру установки необходимых компонент SQL Server 2012. Возможно при повторном запуске инсталлятора мы получим ошибку:
System.IO.FileNotFoundException: Could not load file or assembly ‘System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’ or one of its dependencies. The system cannot find the file specified.
Появление этой ошибки будет вести к отмене вызова окна программы установки SQL Server. Эта “болячка” известна ещё со времени SQL Server 2008 R2 и для решения этой проблемы необходимо найти указанный в тексте ошибки файл user.config и удалить его.
В нашем примере файл расположен в каталоге
%USERPROFILE%\AppData\Local\Microsoft_Corporation\LandingPage.exe_StrongName_ryspccglaxmt4nhllj5z3thycltsvyyx\11.0.0.0
После этого процесс установки SQL Server 2012 должен завершиться без ошибок.
Источники информации:
- Tom Van Gaever — Installation of SQL Server 2012 on Server 2012 beta: NetFx3.5 is a Feature on Demand
- Microsoft Connect — 640350 — Install VS2008, 2010 and SQL 2008 R2, generates installer error
Большинство современных приложений Windows требуют наличия установленного .NET Framework. Например, в Windows 11/10 и Windows Server 2022/2019 по умолчанию уже установлена версия NET Framework 4.8. Однако некоторые старые приложения требуют наличия установленного .NET Framework 3.5, 2.0 или даже 1.0.
В этой статье мы рассмотрим, как установить .NET 3.5 в Windows 11/10 и Windows Server 2022/2019/2016.
Содержание:
- Установка .NET Framework 3.5 в Windows 11 и 10
- Как установить .NET 3.5 в Windows Server 2022/2019/2016?
- Настройка параметров офлайн установка .Net 3.5 помощью GPO
Установка .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 из панели Turn Windows Features on or off:
- Выполните команду
optionalfeatures.exe
; - В списке компонентов выберите .NET Framework 3.5 (includes .NET 2.0 and 3.0), нажмите ОК;
- Если на вашем компьютере есть доступ в Интернет, в следующем окне выберите Let Windows Update download the files for you;
-
- Windows скачает и установить последнюю версию компонента .NET Framework 3.5 с серверов Microsoft Update.
Также вы можете установить .NET Framework 3.5 из командной строки:
- С помощью 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 к компьютеру. В моем случае у меня есть файл Windows11-22h2.iso. Щелкните по файлы и выберите Mount, чтобы смонтировать образ в виртуальный DVD привод (или воспользуйтесь командой PowerShell:
Mount-DiskImage -ImagePath "C:\distr\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
[/alert]
Как установить .NET 3.5 в Windows Server 2022/2019/2016?
В Windows Server 2022,2019,2016 и 2012 R2 вы можете установить NET Framefork 3.5 несколькими способам:
- ерез Server Manager (Add roles and features -> Features -> .NET Framework 3.5 Features -> .NET Framework 3.5 (includes .NET 2.0 and 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 в групповых политиках или напрямую в реестре);
Проверьте значение параметра UseWUServer в реестре:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "UseWUServer" | select -ExpandProperty UseWUServer
Если значение параметра равно 1, значить ваш хост будет пытаться получить обновления с локального WSUS сервера. В этом случае при установке .NET 3.5 появится ошибка 0x800F0954. Измените значение параметра на 0 или удалите его, чтобы подключиться напрямую к серверам обновлений Windows Update.
Если ваш сервер имеет доступ в Интернет, но настроен на получение обновлений со WSUS, при устапновке NET Framework появится ошибка 0x800f081f.
Решение: установить .Net 3.5 онлайн с серверов Microsoft и игнорировать локальный WSUS:
- Экспортируйте в reg файл текущие настройки Windows Update в ветке HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate (
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 из Интернета:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
- После окончания установки верните настройки WU, импортировав reg файл (
Reg import c:\WindowsUpdateRegFile.reg
) и еще раз перезапустите службу Windows Update
Если с вашего сервера нет прямого доступа в Интернет, то при попытке установить .NET 3.5 в Windows Server через консоль Server Manager появится ошибка 0x800F081F (The source files could not be found), 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
– Removed.
Для установки NET-Framework-Core вам потребуется дистрибутив с вашей версией Windows Server в виде ISO файла, или в распакованном виде в сетевой папке. Смонтируйте ISO образ с дистрибутивом в отдельный виртуальный диск (например, диск D:).
Теперь вы можете установить .Net Framework 3.5 с помощью графической консоли Server Manager:
Установить компонент .Net 3.5 можно из графической консоли Server Manager. Для этого выберите компонент .Net Framework 3.5 Features, но, перед тем, как нажать кнопку Install, нажмите небольшую ссылку внизу мастера — Specify an alternative source path.
- Для этого выберите компонент .Net Framework5 Features. Перед тем, как нажать кнопку Install, нажмите на ссылку Specify an alternative source path внизу;
- Укажите путь к хранилищу компонентов (SXS) дистрибутива Windows Server. Если вы смонтировали дистрибутив в виртуальный привод, это может быть путь
D:\sources\sxs
. Также это может быть сетевая папка, куда вы предварительно скопировали дистрибутив (например,
\\server1\distr\ws2022\sources\sxs
). Нажмите ОК.
Гораздо проще установить компонент Net Framework 3.5 Features из командной строки или консоли PowerShell, запущенной с правами администратора. Просто выполните команду:
Dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess
Где
D:\
— диск с вашим дистрибутивом Windows Server.
Параметр LimitAccess запрещает DISM подключение к серверам обновлений для получения установочных файлов компонентов. Используются только файлы в указанном каталоге.
Если вы хотите установить компонент Windows Server с помощью PowerShell, воспользуйтесь командой Add-WindowsFeature:
Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs
После завершения установки компонента, перезагрузка сервера не требуется.
Также вы можете вручную скопировать 2 cab файла
microsoft-windows-netfx3...
из каталога sources\sxs вашего дистрибутива. В этом случае для установки .Net 3.5 достаточно выоплнить команду:
dism /online /Add-Package /PackagePath:C:install\net35\microsoft-windows-netfx3-ondemand-package~31bf3856ad364e35~amd64~~.cab.
Настройка параметров офлайн установка .Net 3.5 помощью GPO
С помощью групповой политики Specify settings for optional component installation and component repair (находится в разделе GPO Computer Configuration -> Administrative Templates -> System) можно настроить особые параметры установки компонентов Windows из локального источника или Windows Update даже при использовании WSUS.
На отдельностоящем компьютере вы можете включить этот параметр политики с помощью редактора локальной GPO (gpedit.msc). В среде Active Directory вы можете создать политику для всех компьютеров/серверов с помощью консоли GPMC.
Здесь можно указать, что при установки или восстановлении компонентов Windows необходимо всегда загружать файлы из Интернета с серверов Windows Update вместо локального WSUS (опция Download repair content and optional features directly from Windows Update instead of Windows Server Update Services — WSUS).
Также можно указать путь к каталогу с компонентами Windows Server (или wim файлу), который нужно использовать при офлайн установке (указывается в параметр Alternate source file path). Вы можете указать:
-
- Путь к сетевой папке в UNC формате (
\\server\distr\ws2016\sxs
) (здесь можно указать несколько UNC путей через точки с запятой:
\\srv1\ws22\sxs;\\fs01\ws22\sxs;\\fs3\sxs
- Путь к сетевой папке в UNC формате (
- Также допустимо указывать WIM файл в качестве источника:
WIM:\\srv1\distr\ws2016\install.wim:2
(в этом случае
2
– это индекс образа вашей редакции Windows Server в WIM файле. Список доступных редакций в файле можно вывести так:
DISM /Get-WimInfo /WimFile:"\\server\distr\ws2016\install.wim"
)
Для разных версий Windows Server нужно использовать разные источники с каталогом SXS. Если в вашей сети есть несколько версии Windows Server, нужно создать отдельные GPO с разными UNC путями к сетевой папке с SXS. Чтобы GPO применялась только к хостам с определенными версиями Windows Server, можно использовать WMI фильтры групповых политик.
Hello friends,
It has been a while since I last wrote a blog post, but I have received several questions regarding a specific error: “Error while enabling Windows feature: NetFx3.” Today, I will address this error and provide you with the solution.
Firstly, let’s understand what this error is and why it appears with different names in different scenarios. The error occurs when installing SQL Server or other applications that require the .NET Framework 3.5. The problem arises because Windows Server 2012 does not include NetFx3 by default. However, it can be installed separately.
Now, let’s move on to resolving the issue. There are two ways to do this:
Using the GUI
- Insert the Windows 2012 CD or attach the ISO file if using a virtual environment like VMware or Hyper-V.
- Check the drive letter assigned to the CD or ISO file (e.g., D:).
- Open Server Manager and go to “Manage” and then “Add roles and features.”
- Select “.NET Framework 3.5 features” and click “Next.”
- Enter the alternate source path, which in our case is “D:\Sources\SxS”. This is where the necessary bits are located.
- Click “OK” and proceed with the installation.
Using the Command Prompt
If you prefer using the command prompt, follow these steps:
- Open the command prompt.
- Type the following command:
dism /online /enable-feature /featurename:netfx3 /all /source:d:\sources\sxs
Once you have completed either of these processes, the error should no longer occur.
If you found this post helpful, please like our Facebook page: https://www.facebook.com/Ashishsharepointblog.
Feel free to rate and provide feedback if you found this post useful.
Hope this helps!
Best regards,
Ashi
Программная платформа .NET Framework была разработана компанией Microsoft для того, чтобы дать возможность разработчикам абстрагироваться от системного окружения конкретного компьютера, на котором будет исполняться их программа. В этом случае не будет иметь значения какая операционная система установлена, какой процессор и другое аппаратное обеспечение используется — главное, чтобы на компьютере была установлена среда .NET Framework, которая обеспечивает исполнение кода и взаимодействие с необходимыми компонентами окружения. Для работы с этой платформой были разработаны или адаптированы специальные языки программирования C#.NET, VB.NET, C++.NET, J#.NET, F#.NET и т.д.
Достаточно большое количество программ написано под эту платформу, поэтому нужно знать, как установить ее на сервер.
.NET Framework актуальной версии (4.x) уже включен на серверах Windows, развернутых из наших шаблонов. Если требуется включить предыдущую версию (3.5) или же сервер развернут из собственного шаблона/установлен из дистрибутива, можно воспользоваться нижеследующей инструкцией.
Установка компонента .NET Framework в ОС Windows Server
Включение компонента .NET Framework в OC Windows Server возможно с использованием Windows Update или с использованием локального хранилища компонентов (потребуются файлы с дистрибутива ОС). Рассмотрим оба варианта.
Вариант 1
Самый простой и быстрый способ, при наличии подключения к сети Интернет, это установка компонента .NET Framework 3.5 с сервера Microsoft Windows Update (актуально для Windows Server 2008R2/2012R2/2016/2019).
Запускаем PowerShell с правами администратора: Пуск — правый клик по ярлыку Windows Powershell — Запуск от имени Администратора (Run as Administrator):
В открывшемся окне PowerShell набираем команду:
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
Eсли установка производится на Windows Server 2008R2:
DISM /Online /Enable-Feature /FeatureName:NetFx3
Нажимаем Enter и ожидаем завершения установки:
Вариант 2
Для установки с использованием локального хранилища (или дистрибутива ОС Windows) через графический интерфейс (Windows Server 2012R2/2016/2019 ):
Запускаем Диспетчер серверов (Server Manager), нажимаем Управление (Manage) – Добавить роли и компоненты (Add Roles and Features):
В появившемся окне нажимаем Далее (Next):
В окне Выбор типа установки (Select installation type) убеждаемся, что выбран пункт установка ролей и компонентов (Role-based or feature-based installation), нажимаем Далее (Next):
Выбор целевого сервера (Select destination server) – проверяем, что в списке выбран требуемый сервер, нажимаем Далее (Next):
Пропускаем Выбор ролей сервера (Select server roles), нажимаем Далее (Next):
В окне Выбор компонентов (Select features) находим в списке требуемую версию .NET Framework и отмечаем галкой, нажимаем Далее (Next):
В случае установки актуальной версии .NET Framework (4.x) в данном окне можно нажимать кнопку Установить (Install), после чего начнется процесс инсталляции из локального хранилища. Если же мы устанавливаем предыдущую версию (3.5), то появится предупреждение, что необходимые для установки файлы отсутствуют и нужно указать путь к данным файлам. Понадобится либо дистрибутив установленной версии дистрибутива ОС Windows, либо копия папки SourcesSxS с этого дистрибутива. Нажимаем на ссылку Указать альтернативный исходный путь (Specify an alternate source path):
В открывшейся форме указываем путь к папке SourcesSxS дистрибутива текущей версии (или копии этой папки – в нашем примере папка скопирована на локальный диск в c:tempsxs), нажимаем ОК:
Вернувшись на форму Подтверждение компонентов установки (Confirm installation selections) нажимаем Установить (Install) и ожидаем окончания установки. Закрываем форму:
Установка на Windows server 2008R2 также производится через Диспетчер серверов:
Запускаем Диспетчер серверов, переходим в раздел Компоненты, нажимаем Добавить компоненты:
В списке компонентов находим и ставим галку на .NET Framework, нажимаем Далее:
В следующем окне нажимаем кнопку Установить:
Дожидаемся успешного окончания установки и закрываем окно:
Установка актуальной версии .NET Framework (4.x) в ОС Windows Server 2008R2 через добавление компонентов не работает. Для инсталляции потребуется скачать автономный установщик с сайта Microsoft (например, по ссылке https://www.microsoft.com/ru-RU/download/details.aspx?id=55167) и установить как обычную программу.
Средняя оценка: 5.0
Оценили: 2
Okay… I am installing SQL Server 2012 on a Windows Server 2012 box, there shouldn’t be any problems. Everything is proceeding normally until I get this message:
Error while enabling Windows feature : NetFx3, Error Code : –2146498298 , Please try enabling Windows Feature : NetFx3 from Windows management tools and then run setup again.
No problem… I know how to install Windows Features; I start the Add roles and Features Wizard and go looking for NetFx3… it’s not there.
Problem.
It turns out that Windows Server 2012 does not include NetFx3 when it is installing. It doesn’t mean that it is gone, but it does have to be installed separately. Here’s what you do:
1) Insert your Windows Server 2012 media. As I was installing SQL Server in a Hyper-V VM I ejected the SQL media and attached my Windows Server 2012 ISO. I then checked to see what drive letter it was (D:).
2) I opened a Command Prompt with administrative credentials. From the Start Screen I typed CMD but instead of clicking on it or pressing ENTER I right-clicked, and at the bottom clicked on Run As Administrator.
3) From the Command Prompt I typed the following command:
dism /online /enable-feature /featurename:netfx3 /all /source:d:\sources\sxs
The Deployment Image Servicing and Management tool is one of the easiest ways to install features in Windows when the GUI fails you.
Note: Unfortunately, if you encounter this error you will have to restart your installation of SQL Server. That doesn’t mean you should cancel it out at this point… what I did was I left the error message on the screen while I resolved the NetFx3 issue, and then let it resume. The SQL Server installation succeeded, with several failures. I then went back and re-installed SQL on top of the old, with the features that I needed. It worked just fine for me, and it should for you.