В компонентах Windows нет Microsoft .NET Framework 4, как его включить/переустановить? — Хабр Q&A

Использую Windows 10, ранее ставил докер все работало, потом я его удалил, сейчас потребовалось установить заново, при запуске выдает ошибку:

Docker ошибка при запуске

---------------------------
Docker Desktop.exe - Ошибка инициализации платформы .NET Framework
---------------------------
Для запуска этого приложения сначала необходимо установить одну из следующих версий .NET Framework:
  v4.0.30319
 Обратитесь к издателю приложения за инструкциями по получению соответствующей версии .NET Framework.
---------------------------
ОК   
---------------------------

* версия требования изменилась, ранее была вроде 4.5-4.8, т.к. я *спойлер* снес все версии .net framwork в последствии

Погулив полдня проблему, я скачал установщик .NET Framework, но он отказывается устанавливать ссылаясь на то, что . NET Framework 4 уже установлен

Скрин ошибки установки

Погуглив еще, я открыл компоненты Windows, где должно быть следующее:

Что должно быть (скрин из интернета)

Но у меня нет вкладки с .NET Framework, а только такое:

Мой скрин

При попытки включить все где есть .NET, при повторном открытии этого меню галки слетают. Иногда после установки галок, просит перезагрузку, а иногда нет, но это ни на что не влияет.

Погуглив еще эту проблему, я скачал утилиту .NET Framework Cleanup Utility, где выбран пункт «удалить все версии Windows 10», по итогу как уже все поняли, я снес все версии, что теперь у меня отказываются работать некоторые программы, в том числе PowerShell.

Скрин утилиты

Скрин ошибки PowerShell

В итоге, как я думал, если я удалю все, то я спокойно смогу накатить . NET Framework 4, и другие версии, но к сожалению скрин с ошибкой при установке все так же актуален и просит включить его в компонентах, но его там нет.

Если проверить список установленных .NET Framewrok в системе показывает, что они есть (хотя я их удалил)

Результат

dir %WINDIR%\Microsoft.Net\Framework\v* /O:-N /B
v4.0.30319
v3.5
v3.0
v2.0.50727
v1.1.4322
v1.0.3705

Результат проверки установленных фреймворков .NET Detector

<32Bit>
1.1.4322.2032
  ->C:\Windows\Microsoft.NET\Framework\v1.1.4322
2.0.50727.9151
  ->C:\Windows\Microsoft.NET\Framework\v2.0.50727
<64Bit>
2.0.50727.9151
  ->C:\Windows\Microsoft.NET\Framework64\v2.0.50727
==== Installed .NET Frameworks ====
.NET FW 1.1 SP 1 (CLR 1.1)
.NET FW 2.0 SP 2 (CLR 2.0)
.NET FW 3.0 SP 2 (CLR 2.0)
.NET FW 3.5 SP 1 (CLR 2.0)
==== Installed .NET Core Runtime 64bit ====
No .NET Core x64 Runtime
==== Installed .
NET Core Runtime 32bit ==== No .NET Core x86 Runtime ==== Installed .NET Core Sdk 64bit ==== No .NET Core x64 Sdk ==== Installed .NET Core Sdk 32bit ==== No .NET Core x86 Sdk ==== Languages ==== < Installed Languages 3.0> < Installed Languages 3.5.x> < Installed Languages 4.x> ==== Updates ==== .NETFramework ==== END REPORT ====

Список фреймворков в реестре

Я уже совсем опустил руки, и не знаю где искать ответы, гугл вдоль и попрек облазил, поэтому последняя надежда здесь.

Microsoft NET Framework — программная платформа для системы Windows


Microsoft NET Framework — программная платформа от компании Microsoft для операционных систем Windows XP, Windows Vista и Windows 7.

Microsoft — компания огромного масштаба, она потратила миллиарды долларов на создание и поддержку своей новой платформы — .NET (пишется с точкой в начале и читается «dot NET»).

NET Framework представляет собой новую платформу разработки программных продуктов, предназначенную для упрощения объектно-ориентированного программирования и создания распределённых приложений.

NET Framework состоит из двух основных компонентов

  • Common Language Runtime (CLR) — это общеязыковая среда выполнения, в которой функционируют приложения NET. Это виртуальная машина, аналогичная виртуальной машине Java.
  • Base Class Library (BCL) — набор библиотек классов .NET Framework. Все языки программирования в среде NET используют эту библиотеку.

Основным языком для программирования в этой среде стал С# — это простой, безопасный и современный объектно-ориентированный язык.

С# (читается «С sharp») взял самое лучшее из таких популярных языков, как Java и C++.

Библиотеки классов .NET Framework позволяют разработчикам использовать единый программный интерфейс (API) ко всем функциям CLR.

Среда CLR несёт ответственность за управление и очистку памяти, как и в Java, создаётся исполняемый код, но он не интерпретируется виртуальной машиной, а компилируется с учётом особенностей операционной системы.

Таким образом разработчики на С# имеют возможность писать эффективные и высокопроизводительные приложения.

Установка Microsoft NET Framework

Для того, чтобы эти приложения могли выполняться на вашем компьютере, необходимо скачать и установить Microsoft NET Framework.

Различным программам для работы может быть необходима конкретная версия платформы NET. Обычно она устанавливается вместе с программой автоматически.

Если автоматической установки по какой-либо причине не произошло, вы можете узнать требуемую версию на официальном сайте или в документации к приложению и произвести установку самостоятельно.

Следует заметить, что в состав операционной системы Windows 7 уже входит Microsoft .NET Framework 3.5 и вам может потребоваться установка только более поздней версии.

В таких современных операционных системах, как Windows 8 и Windows 10 NET Framework тоже предустановлен, но может потребоваться его включить. Сделать это можно в разделе управления компонентами Windows.



Выясните, какая версия NET Framework требуется для работы ваших приложений, перед тем как приступить к скачиванию.

Если вы просто решили обновить функциональность вашей операционной системы, то мы рекомендуем установить Microsoft .NET Framework 4 Client Profile.

  • Microsoft .NET Framework 4.5
  • Microsoft .NET Framework 4
  • Клиентский профиль Microsoft .NET Framework 4 Client Profile
  • Microsoft .NET Framework 3.5 SP1 с пакетом обновления 1
  • Microsoft .NET Framework 3.5

Попробуйте Microsoft Security Essentials — бесплатный антивирус от Microsoft.

Следующая статья: Java Virtual Machine — Загрузка и установка виртуальной машины Java.

В категориях:

Скачать .NET (Linux, macOS и Windows)

Бесплатно. Кроссплатформенность. Открытый источник.

Для Linux

.NET 7.0

Стандартный срок поддержки рекомендуемые

Инструкции по установке .NET в Linux Версия 7. 0.3, выпущенная 24 февраля 2023 г.

Все загрузки .NET 7.0 Все версии .NET

.NET 6.0

Долгосрочная поддержка

Инструкции по установке .NET в Linux Версия 6.0.14, выпущенная 14 февраля 2023 г.

Все загрузки .NET 6.0

Что нового в .NET 7?

Улучшения .NET 7 включают общее повышение производительности, новые инструменты для кроссплатформенной разработки с .NET MAUI, обновления для ASP.NET Core и облачной разработки, поддержку ARM64 и многое другое.

Узнать больше

Другие загрузки .NET

.NET Framework

Ищете предыдущие загрузки .NET Framework для Windows?

Скачать .NET Framework

Пакет кодирования .

NET

Пакет кодирования .NET для VS Code содержит все необходимое для начала написания кода на C#.

Загрузить пакет кодирования .NET

Docker

Найдите официальные образы для .NET и ASP.NET Core в реестре артефактов Microsoft.

Исследуйте образы .NET

Исследуйте все, что может предложить .NET

Интернет

Создавайте веб-приложения и службы для macOS, Windows, Linux и Docker.

Мобильный

Используйте единую кодовую базу для создания собственных мобильных приложений для iOS, Android и других устройств.

Рабочий стол

Создавайте собственные приложения для Windows и macOS или создавайте приложения, которые работают где угодно, с помощью веб-технологий.

Микросервисы

Создавайте независимо развертываемые микросервисы, работающие в контейнерах Docker.

Облако

Использовать существующие облачные службы или создавать и развертывать собственные.

Машинное обучение

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

Разработка игр

Разрабатывайте 2D- и 3D-игры для самых популярных настольных компьютеров, телефонов и консолей.

Интернет вещей

Создавайте приложения для Интернета вещей со встроенной поддержкой Raspberry Pi и других одноплатных компьютеров.

Расширьте возможности .NET

Ознакомьтесь с дополнительными инструментами

Visual Studio

Полнофункциональная интегрированная среда разработки (IDE) в Windows для создания приложений .NET любого типа.

Скачать визуальную студию

Visual Studio Code

Разрабатывайте в Linux, macOS или Windows для создания кроссплатформенных веб-сайтов и сервисов. Установите расширение C#, чтобы получить наилучшие впечатления.

Скачать код Visual Studio

Visual Studio для Mac

Создавайте собственные приложения для Android, iOS, macOS и Windows с помощью .NET MAUI, а также веб-сайты и службы с помощью ASP.NET Core.

Скачать Visual Studio для Mac

Подписывайтесь на нас

Microsoft .NET Framework 6.0.10 Загрузить

.NET Framework включает в себя большую библиотеку классов под названием Framework Class Library и обеспечивает языковое взаимодействие между несколькими языками программирования.

.NET — это бесплатная кроссплатформенная платформа для разработчиков с открытым исходным кодом для создания различных типов приложений. .NET Framework — это оригинальная реализация .NET. Он поддерживает запуск веб-сайтов, служб, настольных приложений и многого другого в Windows.

Благодаря .NET вы можете использовать несколько языков, редакторов и библиотек для создания приложений для Интернета, мобильных устройств, компьютеров, игр и Интернета вещей.

Вы можете писать приложения .NET на C#, F# или Visual Basic.

  • C# — это простой, современный, объектно-ориентированный и типобезопасный язык программирования.
  • F# — это кроссплатформенный функциональный язык программирования с открытым исходным кодом для .NET. Он также включает объектно-ориентированное и императивное программирование.
  • Visual Basic — это доступный язык с простым синтаксисом для создания типобезопасных объектно-ориентированных приложений.

Среда выполнения

Среда выполнения включает все необходимое для запуска существующих приложений/программ, созданных с помощью .NET Framework.

Пакет разработчика

Пакет разработчика используется разработчиками программного обеспечения для создания приложений, работающих на .NET Framework, обычно с использованием Visual Studio.

Выпуск .NET 6.0.10 содержит исправления безопасности и исправления, не связанные с безопасностью.

Microsoft выпускает эти рекомендации по безопасности, чтобы предоставить информацию об уязвимости в .NET 6.0 и .NET Core 3.1. В этом бюллетене также содержатся рекомендации о том, что разработчики могут сделать, чтобы обновить свои приложения, чтобы устранить эту уязвимость.

Уязвимость отказа в обслуживании существует в ASP.NET Core 3.1 и .NET 6.0, где вредоносный клиент может вызвать переполнение стека, что может привести к атаке отказа в обслуживании, когда злоумышленник отправляет настроенные полезные данные, которые анализируются во время привязки модели.

Дополнительные исправления в этом выпуске

  • Среда выполнения

Совместимость с Visual Studio

Для использования .NET 6.0 в Windows требуется Visual Studio 17.3 или более поздней версии. В macOS вам потребуется последняя версия Visual Studio для Mac. Расширение C# для Visual Studio Code поддерживает .NET 6.0 и C# 10.0.

Усовершенствования

Поддержка Visual Studio

  • Visual Studio 2022 (v17. 3)
  • Visual Studio 2022 для Mac (последняя предварительная версия 17.0)

Включено в

  • Visual Studio 17.3.4
  • Включенные среды выполнения
  • Среда выполнения .NET 6.0.9
  • Основная среда выполнения ASP.NET 6.0.9
  • Среда выполнения рабочего стола .NET 6.0.9

Языковая поддержка

  • С# 10.0
  • F# 6.0
  • Visual Basic 16.9

Новые функции в .NET Framework

Среда выполнения — улучшения JIT

  • JIT в .NET 4.8 основан на .NET Core 2.1. Все исправления ошибок и множество оптимизаций производительности на основе генерации кода из .NET Core 2.1 теперь доступны в .NET Framework.

Среда выполнения — улучшения NGEN

  • Образы NGEN в .NET Framework больше не содержат доступных для записи и исполняемых разделов. Это уменьшает поверхность, доступную для атак, которые пытаются выполнить произвольный код, изменяя память, которая будет выполняться.
  • Хотя во время выполнения в памяти по-прежнему будут доступны для записи и исполняемые данные, это изменение удаляет те, которые сопоставлены с образами NGEN, что позволяет им работать в ограниченных средах, которые не разрешают исполняемые и записываемые разделы в образах.

Среда выполнения — сканирование всех сборок на наличие вредоносных программ

  • В предыдущих версиях .NET Framework Защитник Windows или стороннее программное обеспечение для защиты от вредоносных программ автоматически сканировали все сборки, загруженные с диска, на наличие вредоносных программ. Однако сборки, загруженные из других источников, например с помощью Assembly.Load(byte[]), не будут сканироваться и потенциально могут содержать незамеченные вирусы.
  • .NET Framework 4.8 в Windows 10 запускает сканирование этих сборок с помощью Защитника Windows и многих других решений для защиты от вредоносных программ, в которых реализован интерфейс сканирования на наличие вредоносных программ. Мы ожидаем, что это затруднит маскировку вредоносного ПО в программах .NET.

BCL — обновленная ZLib

  • Начиная с .NET Framework 4.5 мы использовали собственную версию ZLib (собственная внешняя библиотека сжатия, используемая для сжатия данных) с https://zlib.net в clrcompression.dll, чтобы обеспечить реализация алгоритма дефляции. В .NET Framework 4.8 мы обновили clrcompression.dll, чтобы использовать версию 1.2.11, которая включает несколько ключевых улучшений и исправлений.

BCL — снижение влияния FIPS на криптографию

.NET Framework 2.0+ имеет классы криптографических поставщиков, такие как SHA256Managed, которые выдают CryptographicException, когда системные криптографические библиотеки настроены в «режиме FIPS». Эти исключения возникают, поскольку управляемые версии не прошли сертификацию FIPS (федеральные стандарты обработки информации) 140-2 (генерация образов JIT и NGEN сделает сертификат недействительным), в отличие от системных криптографических библиотек. Немногие разработчики используют свои машины для разработки в «режиме FIPS», что приводит к возникновению этих исключений в рабочей среде (или в клиентских системах). Параметр «Режим FIPS» также использовался .NET Framework для блокировки криптографических алгоритмов, которые не считались утвержденными алгоритмами по правилам FIPS.

Для приложений, созданных для .NET Framework 4.8, эти исключения больше не будут создаваться (по умолчанию). Вместо этого класс SHA256Managed (и другие классы управляемой криптографии) будет перенаправлять криптографические операции в системную криптографическую библиотеку. Это изменение политики эффективно устраняет потенциально запутанную разницу между средами разработки и производственными средами, в которых выполняется код, и заставляет собственные компоненты и управляемые компоненты работать в соответствии с одной и той же криптографической политикой.

Приложения, предназначенные для .NET Framework 4.8, будут автоматически переключаться на более новую, смягченную политику и больше не будут видеть исключения, создаваемые MD5Cng, MD5CryptoServiceProvider, RC2CryptoServiceProvider, RIPEMD160Managed и RijndaelManaged в «режиме FIPS». Приложения, которые зависят от исключений из предыдущих версий, могут вернуться к предыдущему поведению, установив для переключателя AppContext «Switch.System.Security.Cryptography.UseLegacyFipsThrow» значение «true».

Windows Forms — Расширение специальных возможностей

В .NET Framework WinForms добавлены три новые функции, позволяющие разработчикам создавать более доступные приложения. Добавленные функции предназначены для более надежной передачи данных приложений пользователям с нарушениями зрения. Мы добавили поддержку всплывающих подсказок, когда пользователь перемещается с помощью клавиатуры, мы добавили LiveRegions и Notification Events ко многим часто используемым элементам управления.

Чтобы включить эти функции, в вашем приложении должны быть включены следующие AppContextSwitches в файле App.config:

Windows Forms — поддержка UIA LiveRegions в Labels и StatusStrips

UIA Live Regions позволяют разработчикам приложений уведомлять программы чтения с экрана об изменении текста в элементе управления, расположенном вне места, где работает пользователь. Примерами того, где это может пригодиться, может быть StatusStrip, показывающий статус соединения. Если соединение разрывается и состояние изменяется, разработчик может захотеть уведомить программу чтения с экрана об этом изменении. Windows Forms реализовал UIA LiveRegions как для элемента управления Label, так и для элемента управления StatusStrip.

Пример использования LiveRegion в элементе управления Label:

Экранный диктор теперь объявляет «Готово» независимо от того, где пользователь взаимодействует с приложением.
Вы также можете реализовать свой UserControl как регион Live:

Windows Forms — события уведомлений UIA

В Windows 10 Fall Creators Update Windows представила новый метод уведомления приложением экранного диктора об изменении содержимого, и экранный диктор должен объявить об изменении . Событие уведомления UIA позволяет вашему приложению вызывать событие UIA, что приводит к тому, что экранный диктор просто делает объявление на основе текста, который вы предоставляете вместе с событием, без необходимости иметь соответствующий элемент управления в пользовательском интерфейсе. В некоторых сценариях это может быть простым способом значительно улучшить доступность вашего приложения. Дополнительные сведения о событиях уведомлений UIA см. в этой записи блога.

Пример того, где уведомление может пригодиться, — уведомление о ходе выполнения какого-либо процесса, который может занять некоторое время.

Пример возникновения события уведомления:

Windows Forms — всплывающие подсказки при доступе с клавиатуры

В настоящее время всплывающая подсказка элемента управления может появляться только при перемещении указателя мыши в элемент управления. Эта новая функция позволяет пользователю клавиатуры вызывать всплывающую подсказку элемента управления, фокусируя элемент управления с помощью клавиши Tab или клавиш со стрелками с клавишами-модификаторами или без них. Это конкретное улучшение специальных возможностей требует дополнительного AppContextSwitch, как показано в следующем примере:

  • Создать новое приложение WinForms
  • Добавьте следующий XML-код в файл App. config
  • Добавьте несколько кнопок и элемент управления ToolTip в форму приложения.
  • Установить всплывающие подсказки для кнопок.
  • Запустите приложение и перемещайтесь между кнопками с помощью клавиатуры:

Windows Forms — DataGridView управляет изменениями доступной иерархии

В настоящее время доступная иерархия (дерево автоматизации пользовательского интерфейса) показывает элемент дерева поля редактирования как дочерний элемент текущей редактируемой ячейки, но не как корневой дочерний элемент DataGridView. Обновление дерева иерархии можно наблюдать с помощью инструмента Inspect:

WCF — ServiceHealthBehavior

Конечные точки работоспособности имеют много преимуществ и широко используются инструментами оркестрации для управления службой на основе состояния работоспособности службы. Проверки работоспособности также могут использоваться инструментами мониторинга для отслеживания и оповещения о доступности и производительности службы, где они служат ранними индикаторами проблем.