Start Debugging

.NET Framework 3.5 становится автономным в новых сборках Windows: что ломается

Начиная с Windows 11 Build 27965, .NET Framework 3.5 больше не является дополнительным компонентом Windows. Вот что ломается в CI, провижининге и эталонных образах, и как это исправить.

Microsoft изменила то, что многие разработчики и ИТ-специалисты автоматизировали и затем забыли: начиная с Windows 11 Insider Preview Build 27965, .NET Framework 3.5 больше не включается как дополнительный компонент Windows. Если он вам нужен, теперь его необходимо получать в виде автономного установщика.

Это история о .NET Framework, но она ударит по командам, создающим современные сервисы на .NET 10 и C# 14, потому что боль проявляется в таких местах, как свежие машины разработчиков, эфемерные агенты CI, эталонные образы и закрытые сети.

Ключевая деталь: “NetFx3” больше не гарантируется

Из публикации:

Если ваши скрипты предполагают “включи функцию, и Windows сама всё сделает”, ожидайте поломок на новой линейке.

Что должен делать ваш провижининг сейчас

Относитесь к .NET Framework 3.5 как к зависимости, которую вы явно разворачиваете и проверяете. Как минимум:

Вот практическая защита, которую можно добавить в провижининг агента сборки или в шаг “preflight”:

# Works on Windows PowerShell 5.1 and PowerShell 7+
$os = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
$build = [int]$os.CurrentBuildNumber

Write-Host "Windows build: $build"

# Query feature state (if the OS exposes it this way)
dism /online /Get-FeatureInfo /FeatureName:NetFx3

if ($build -ge 27965) {
  Write-Host ".NET Framework 3.5 is obtained via standalone installer on this Windows line."
  Write-Host "Official guidance (installers + compatibility + migration paths):"
  Write-Host "https://go.microsoft.com/fwlink/?linkid=2348700"
}

Это ничего не устанавливает само по себе. Это делает сбой явным, ранним и легко интерпретируемым, когда образ машины тихо изменился у вас под ногами.

”Почему”, по которому стоит действовать сейчас

Даже если вы планируете мигрировать, у вас, вероятно, всё ещё есть:

Так что немедленная победа - это не “остаться на 3.5”. Немедленная победа - сделать вашу среду предсказуемой, пока вы движетесь к поддерживаемым целям.

Источники:

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Назад