Установка .NET Framework 3.5 в Windows Server 2012 R2

Большинство современных Windows-приложений для своей нормальной работы требуют наличие установленной платформы .NET Framework. Мастер установки ролей и компонентов Server Manager в Windows Server 2012 R2 позволяет запустить установку двух разных версий .NET Framework — 3.5 и 4.5. Установка .NET Framework 4.5 обычно вопросов не вызывает – вся процедура крайне проста, чего не скажешь про установку .NET Framework 3.5.

Установка .Net Framework 3.5 в windows server 2012 r2

Дело в том, что при попытке установить .NET Framework 3.5 в Windows Server 2012 R2 со стандартными настройками появляется ошибка «Installation of one of more roles, role services or features failed. The source files could not be found…».

В русской версии ошибка выглядит так:

Не удалось установить одну или несколько ролей, служб ролей или компонентов. Не удалось найти исходные файлы. Попробуйте установить роли, службы ролей или компоненты еще раз в новом сеансе мастера добавления ролей и компонентов, и выберете на странице подтверждения параметр «Указать альтернативный исходный путь», чтобы указать действительное расположение исходных файлов, требуемых для установки.

Ошибка установки .Net Framework 3.5 в windows 2012

Причина такого поведения мастера установки заключается в том, что бинарные файлы .NET Framework 3.5 не являются частью локального кэша бинарных файлов, которые сохраняются на сервер при установке ОС. Сделано это в рамках концепции Features on Demand в Windows Server 2012 с целью уменьшения размера дискового пространства, занимаемого ОС под свои нужды.

Проверим наличие .NET Framework 3.5 в локальном репозитории, выполнив команду Powershell:

Get-WindowsFeature *Framework*

Get-WindowsFeature *Framework*

Как вы видите, искомый компонент находится в удаленном состоянии (Install State: Removed)

По-умолчанию, при установке NET Framework 3.5 через Server Manager, система пытается получить необходимые файлы с сайта Windows Update в Интернете (а не локального сервера WSUS), и если на сервере отсутствует доступ в интернет, установка завершается с ошибкой. Пользователю нужно самому указать путь к дистрибутиву ОС, из которого можно было бы установить недостающий компонент.

Чтобы установить .NET Framework 3.5 вручную достаточно, нажав кнопку Specify an alternative source path, указать альтернативный путь к папке с содержимым установочного диска Windows Server 2012 R2.

Совет. Установочный диск должен содержать ту же самую версию ОС, которая установлена у вас (имеет значение и редакция, и язык, и наличие обновлений). Если установщик не находит требуемых файлов в указанной папке, смотрите решение ниже.

Путь к каталогу дистрибутива windows server 2012 r2

В качестве пути можно указать как локальную папку (в нашем примере это D:\source\sxs, где D:\ — буква локального DVD-привода с дистрибутивом Windows Server) или сетевой каталог.

Путь d:\source\sxs

Нажав, ОК система найдет бинарные файлы компонента .NET Framework 3.5.и установит его.

Ту же самую операцию можно выполнить и из командной строки, выполнив с правами администратора команду:

dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess

/Online – означает, что нужно обновлять текущую ОС, а не wim образ

/enable-feature /featurename:NetFX3 /all – необходимо установить платформу .NET Framework 3.5 со всеми функциями

/Source – путь к каталогу дистрибутива Windows, в котором находятся необходимые компоненты

/LimitAccess – предотвратить обращение к узлу Windows Update

dism установка .NetFX3 из командной строкиАналогичная команда Powershell для установки .Net 3.5 выглядит так:

Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs

Путь к «оригинальному» дистрибутиву Windows можно зафиксировать в системе на постоянной основе с помощью:

  • С помощью параметра реестра RepairContentServerSource, который находится в ветке HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing
  • Или групповой политики Specify settings for optional component installation and component repair (политика правит этот же параметр в реестре)

Групповая политика для указания каталога-источника компонентов windows

Примечание. Групповая политика Specify settings for optional component installation and component repair находится в разделе GPO Computer Configuration -> Administrative Templates -> System. Политику нужно включить (Enabled) , указать путь к каталогу с дистрибутивом ОС (Alternative source file path). Чтобы сервер не пытался обновляться из Интернета, поставьте флажок Never attempt to download payload from Windows Update.

Чтобы проверить наличие установленного .NET Framework 3.5, перейдите в каталог C:\Windows\Microsoft.NET\Framework64 и убедитесь, что среди каталогов установленных версий .NET появился v3.5.

Каталог C:\Windows\Microsoft.NET\Framework64\v3.5

В том случае, если указанные выше способы установки .NET Framework 3.5.1 вам не помогли, попробуйте следующие решения.

После установки некоторых обновлений, версия (билд) Windows Server 2012 R2 в системе может перестать соответствовать образу ОС, хранящемуся в имеющемся дистрибутиве. В этом случае установщик при сравнении версии ядра Windows отказывается устанавливать устаревшую версию компонента.

В этом случае как правило, при установке .NET Framework через dism появляется ошибка 0x800f081f. The source files could not be found

ошибка DISM при установке .net 3.5 -0x800f081f. The source files could not be found

Решение: установить .Net через с серверов Microsoft:

  • Сохраните в reg файл текущие настройки Windows Update в ветке HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
  • Удалите данную ветку и перезапустите службу: net stop wuauserv & net start wuauserv
  • Запустите установку .Net из интернета: DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
  • После окончания установки верните настройки WU, импортировав reg файл и еще раз перезапустите службу WindowsUpdate
Совет. В дальнейшем можно использовать папу C:\Windows\winsxs с данного сервера для установки .Net FrameWork 3.5 на других серверах стой же версией ОС. Скопируйте папку C:\Windows\winsxs на нужный сервер в каталог C:\tmp\winsxs и установите компонент командой:

dism /online /enable-feature /featurename:NetFX3 /all /Source:C:\tmp\winsxs /LimitAccess

Кроме того, если вы устанавливали на сервер дополнительный языковой пакет (Language Packs), перед установкой .NET Framework 3.5.1 его нужно удалить с помощью команды lpksetup.

Также проверьте в списке установленных обновлений системы наличие установленных патчей для NET 3.5 Framework (теоретически они вообще не должны были установится, если компонент NetFX3 не установлен).

удаление установленных обновлений для net framework 3.5

Удалите данные обновления и после перезагрузки попытайтесь установить .NET 3.5.


Предыдущая статья Следующая статья


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

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

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

Я не робот( Обязательно отметьте)