- Скачать NET Framework 3.5, 4.7, 4.8 (x64) и др. версии (а также, что делать с ошибками в играх из-за NET Framework)
- Решение проблем с Microsoft .NET Framework
- Как узнать какие версии NET Framework у меня установлены?
- Ссылки на загрузку необходимых версий (ручная установка)
- Обновление NET Framework до последней версии (автоматически!) 👌
- Можно ли удалить NET Framework (или использовать другую версию)? Что для этого необходимо?
- Совместимость версий Version compatibility
- Совместимость версий приложений Version compatibility for apps
- Совместимость версий компонентов Version compatibility for components
- Обратная совместимость Backward compatibility
- Параллельное выполнение Side-by-side execution
Скачать NET Framework 3.5, 4.7, 4.8 (x64) и др. версии (а также, что делать с ошибками в играх из-за NET Framework)
Доброго дня.
Не так уж и редко мне приходится сталкиваться с различными ошибками, связанными с пакетом Microsoft .NET Framework (чаще всего в играх, различных редакторах, программах для черчения, взять хотя бы тот же AutoCAD. ). 👀
Во всех подобных проблемах, для начала, неплохо бы узнать, какая версия NET Framework требуется приложению, посмотреть есть ли она в Windows, и, если ее нет — скачать/обновить/установить .
Казалось бы, ничего сложного, но есть нюансы. О них и пойдет речь в статье. 👌
Вообще, NET Framework — это специальный пакет, который призван совместить между собой различное ПО, написанное на разных языках программирования (так, чтобы все работало).
По идее, можно сравнить его с кодеками. Естественно, если у вас на компьютере нет нужной версии (или она была повреждена) — то программа у вас не запустится.
А теперь, ближе к делу, разберу самое основное.
Решение проблем с Microsoft .NET Framework
Как узнать какие версии NET Framework у меня установлены?
Необходимо открыть 👉 панель управления Windows по следующему пути: Программы\Программы и компоненты ( прим. : установка и удаление программ) .
Далее просмотрите список установленных программ: нет ли среди них, начинающихся на «.NET. «. Если в списке нет, откройте компоненты Windows (см. скриншоты ниже 👇).
Еще один способ открыть компоненты : нажать Win+R, и использовать команду optionalfeatures
Программы и компоненты
Важно!
Отмечу, что в ОС Windows 8 и 10 Microsoft NET Framework не указана в списке установленных программ (чтобы посмотреть версии, необходимо открыть ссылку в меню слева «Просмотр установленных обновлений» ).
В ОС Windows 10 нет возможности удаления NET Framework штатными средствами, однако, как правило возможна установка последней версии сего пакета (его обновление).
Для просмотра и решения проблем с NET Framework есть специальная утилита «.NET Version Detector» (доступна по ссылке: 👉 http://www.asoft.be).
Она не требует установки. После запуска покажет список всех установленных версий, а также приведет ссылки на их загрузку (если вдруг чего-то не окажется — можно скачать и установить).
NET Version Detector — смотрим доступные версии NET Framework
Можно ли не обновлять этот пакет, ведь я раньше не обновлял его и все работало?
Большинство пользователей и не вспоминает о нем (до поры до времени. ). Дело в том, что в новых версиях Windows он уже есть в комплекте (предустановлен в систему) и нет необходимости отдельно что-то скачивать или обновлять.
Кроме этого, NET Framework часто включают в установщики популярных игр, и при их инсталляции происходит и обновление этого пакета. Т.е. все действия незаметны для пользователя.
Однако, может стать так, что новая программа или игра потребует новый пакет NET Framework (или наоборот, захотите запустить что-то старое, которое потребует определенную версию сего пакета).
А дальше все просто: если нужной версии NET Framework не будет — то при запуске вы увидите ошибку (как на примере ниже 👇).
Кстати, часть ошибок может быть связана с «битой» версией NET Framework (именно поэтому, иногда рекомендуется обновлять это ПО).
Ошибка, связанная с отсутствием .NET 4.7 версии
Ссылки на загрузку необходимых версий (ручная установка)
Во-первых , сразу хочу посоветовать: не нужно скачивать все подряд версии и пытаться переустановить каждую (чуть ниже я отмечу, какие версии рекомендованы для разных ОС).
Во-вторых , рекомендуется скачивать NET Framework только с официального сайта Microsoft (так сказать, не измененный установщик). Тем более, если вы уже столкнулись с ошибками, из-за отсутствия этого пакета.
👉 Способ №1. Чуть выше (👆) в статье я вам порекомендовал использовать утилиту «.NET Version Detector» — она не только покажет, какие версии пакета у вас установлены в системе, но и даст ссылки на загрузку каждой версии.
👉 Способ №2. Привожу ниже ссылки на официальный сайт Microsoft:
- Microsoft .NET Framework 1.1 (для Windows XP);
- Microsoft .NET Framework 3.5 SP 1 (включает .NET 2.0, 3.0; для Windows XP, Vista);
- Microsoft .NET Framework 4.0 (для Windows XP, Vista и 7);
- Microsoft .NET Framework 4.5.2 (x86/x64, для Windows 7, 8 и 8.1);
- Microsoft .NET Framework 4.6.2 (x86/x64, для Windows 7, 8, 8.1 и 10);
- Microsoft .NET Framework 4.7.1 (x86/x64, для Windows 7, 8, 8.1 и 10).
- Microsoft .NET Framework 4.8 (x64, автономный установщик! Кстати, это высоко-совместимое обновление для .NET Framework 4, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 и 4.7.2).
Важно отметить , что версия 4 (скажем) обновляет предыдущую версию пакета NET Framework, поэтому для новых ОС Windows 8, 10 требуется установка (в 99,9% случаев) только последних 4-х версий.
Обновление NET Framework до последней версии (автоматически!) 👌
В этой заметке не могу не порекомендовать 👉 программу Driver Booster — даже если вам ненужно обновлять драйвера, все равно попробуйте воспользоваться ей!
Дело в том, что она автоматически определяет недостающие компоненты в системе, которые могут сказаться на играх (NET Framework, Visual C++ и др. пакеты), и устанавливает их. Согласитесь, это удобно!
Обратите внимание, все необходимое для игр (NET Framework, Visual C++ и др. пакеты) программа качает и ставит автоматически!
Можно ли удалить NET Framework (или использовать другую версию)? Что для этого необходимо?
В большинстве случаев, удалять пакет не требуется — просто нужно задействовать другую версию. Сделать это можно во вкладке «Компоненты Windows» (которую можно открыть в панели управления Windows — чуть выше в статье показано, где найти это).
Собственно, нужно-то поставить «галочку» рядом с тем пакетом, который хотите задействовать и согласиться с изменениями. ОС Windows может потребоваться загрузить недостающие файлы — делает она это сама в авто-режиме (просто потребуется подключение к интернету).
Включение NET Framework 4.7
В тех случаях, когда у вас вроде бы установлена нужная версия NET Framework, а игра (программа) все равно сыпет ошибками и «ругается» — можно попробовать удалить пакет и установить его заново.
В ряде случаев, пакет можно удалить, если открыть список установленных программ ( Панель управления \ Программы \ Программы и компоненты ).
Удаление происходит точно также, как и любой другой программы (см. скрин ниже 👇).
Программы и компоненты — удаляем .NET как обычную программу
В отдельных случаях, может потребовать специальная утилита: NET Framework Cleanup Tool (ссылка на блог ее разработчика Microsoft).
Утилита не нуждается в установке. Запускать ее, кстати, необходимо от имени администратора ( прим. : т.е. щелкнуть по исполняемому файлу правой кнопкой мышки и в контекстном меню выбрать «запуск от имени администратора»).
Собственно, дальше будет нужно выбрать версию NET Framework, которую хотите удалить и нажать кнопку «Cleanup Now» (очистить сейчас). См. скриншот ниже. 👇
cleanup tool (работает в Windows 10)
Вот, собственно, и все на сегодня.
Совместимость версий Version compatibility
Обратная совместимость означает, что приложение, разработанное для конкретной версии платформы, будет запускаться и в более поздних версиях этой платформы. Backward compatibility means that an app that was developed for a particular version of a platform will run on later versions of that platform. На платформе .NET Framework в максимально возможной степени обеспечивается обратная совместимость: исходный код, написанный для одной версии платформы .NET Framework, должен компилироваться в более поздних версиях этой платформы, а двоичные файлы, работающие в одной версии платформы .NET Framework, должны точно так же работать в более поздних версиях этой платформы. .NET Framework tries to maximize backward compatibility: Source code written for one version of .NET Framework should compile on later versions of .NET Framework, and binaries that run on one version of .NET Framework should behave identically on later versions of .NET Framework.
Совместимость версий приложений Version compatibility for apps
По умолчанию приложение запускается в той версии платформы .NET Framework, для которой оно было создано. By default, an app runs on the version of .NET Framework that it was built for. Если эта версия отсутствует и в файле конфигурации приложения не определены поддерживаемые версии, может произойти ошибка инициализации .NET Framework. If that version isn’t present and the app configuration file doesn’t define supported versions, a .NET Framework initialization error may occur. В этом случае попытка запустить приложение завершится сбоем. In this case, the attempt to run the app will fail.
Чтобы определить конкретные версии, в которых запускается приложение, добавьте в файл конфигурации этого приложения один или несколько элементов . To define the specific versions on which your app runs, add one or more elements to your app’s configuration file. Каждый элемент определяет поддерживаемую версию среды выполнения. При этом первый элемент указывает наиболее предпочтительную версию, а последний элемент — наименее предпочтительную версию. Each element lists a supported version of the runtime, with the first specifying the most preferred version and the last specifying the least preferred version.
Совместимость версий компонентов Version compatibility for components
Приложение может определять версию платформы .NET Framework, в которой оно запускается, однако компонент не может. An app can control the version of the .NET Framework on which it runs, but a component can’t. Компоненты и библиотеки классов загружаются в контексте конкретного приложения и, следовательно, автоматически запускаются в той версии .NET Framework, в которой запускается это приложение. Components and class libraries are loaded in the context of a particular app, and that’s why they automatically run on the version of the .NET Framework that the app runs on.
Из-за этого ограничения гарантии совместимости особенно важны для компонентов. Because of this restriction, compatibility guarantees are especially important for components. Начиная с .NET Framework 4, можно задать, в какой степени компонент должен оставаться совместимым в различных версиях, применив к этому компоненту атрибут System.Runtime.Versioning.ComponentGuaranteesAttribute. Starting with the .NET Framework 4, you can specify the degree to which a component is expected to remain compatible across multiple versions by applying the System.Runtime.Versioning.ComponentGuaranteesAttribute attribute to that component. Этот атрибут может использоваться разными средствами для обнаружения возможных нарушений гарантии совместимости в будущих версиях компонента. Tools can use this attribute to detect potential violations of the compatibility guarantee in future versions of a component.
Обратная совместимость Backward compatibility
Платформа .NET Framework 4.5 и более поздних версий обратно совместима с приложениями, созданными с помощью более ранних версий .NET Framework. The .NET Framework 4.5 and later versions are backward-compatible with apps that were built with earlier versions of the .NET Framework. Иными словами, приложения и компоненты, созданные с использованием предыдущих версий платформы .NET Framework, будут без внесения изменений работать в .NET Framework 4.5 и более поздних версий. In other words, apps and components built with previous versions will work without modification on the .NET Framework 4.5 and later versions. Однако по умолчанию приложения выполняются в той версии среды CLR, для которой они были разработаны, поэтому, чтобы обеспечить возможность выполнения приложения в .NET Framework 4.5 и более поздних версий, может потребоваться предоставить файл конфигурации. However, by default, apps run on the version of the common language runtime for which they were developed, so you may have to provide a configuration file to enable your app to run on the .NET Framework 4.5 or later versions. Дополнительные сведения см. в разделе Совместимость версий для приложений выше. For more information, see the Version compatibility for apps section earlier in this article.
На практике эту совместимость можно нарушить на первый взгляд несущественными изменениями в платформе .NET Framework и изменениями в методах программирования. In practice, this compatibility can be broken by seemingly inconsequential changes in the .NET Framework and changes in programming techniques. Например, улучшения в производительности в платформе .NET Framework 4.5 могут привести к состоянию гонки, которого не было в предыдущих версиях. For example, performance improvements in the .NET Framework 4.5 can expose a race condition that did not occur on earlier versions. Следует также иметь в виду, что такие действия, как использование жестко запрограммированного пути к сборкам .NET Framework, сравнение на равенство с конкретной версией платформы .NET Framework и получение значения частного поля с помощью отражения, нарушают обратную совместимость. Similarly, using a hard-coded path to .NET Framework assemblies, performing an equality comparison with a particular version of the .NET Framework, and getting the value of a private field by using reflection are not backward-compatible practices. Кроме того, каждая версия платформы .NET Framework содержит исправления ошибок и изменения, связанные с безопасностью, которые могут влиять на совместимость некоторых приложений и компонентов. In addition, each version of the .NET Framework includes bug fixes and security-related changes that can affect the compatibility of some apps and components.
Если приложение или компонент не работает в .NET Framework 4.5 и в доработанных выпусках, .NET Framework 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 или 4.8, ожидаемым образом, воспользуйтесь следующими контрольными списками: If your app or component doesn’t work as expected on the .NET Framework 4.5 (including its point releases, the .NET Framework 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, or 4.8), use the following checklists:
Если приложение разработано для выполнения в любой версии платформы .NET Framework, начиная с .NET Framework 4.0, см. раздел Совместимость приложений, чтобы создать списки изменений между вашей целевой версией .NET Framework и версией, в которой выполняется приложение. If your app was developed to run on any version of the .NET Framework starting with the .NET Framework 4.0, see Application compatibility to generate lists of changes between your targeted .NET Framework version and the version on which your app is running.
Если приложение предназначено для .NET Framework 3.5, см. также раздел Проблемы при миграции на .NET Framework 4. If you have a .NET Framework 3.5 app, also see .NET Framework 4 Migration Issues.
Если приложение предназначено для .NET Framework 2.0, см. также раздел Изменения в .NET Framework 3.5 SP1. If you have a .NET Framework 2.0 app, also see Changes in .NET Framework 3.5 SP1.
Если приложение предназначено для .NET Framework 1.1, см. также раздел Изменения в .NET Framework 2.0. If you have a .NET Framework 1.1 app, also see Changes in .NET Framework 2.0.
Если вы перекомпилируете существующий исходный код для запуска в платформе .NET Framework 4.5 (или ее доработанных выпусках) или разрабатываете новую версию приложения или компонента для запуска в .NET Framework 4.5 или ее доработанных выпусках на основе существующей базы исходного кода, просмотрите раздел Что устарело в библиотеке классов на предмет устаревших типов и членов и используйте описанный обходной путь. If you’re recompiling existing source code to run on the .NET Framework 4.5 or its point releases, or if you’re developing a new version of an app or component that targets the .NET Framework 4.5 or its point releases from an existing source code base, check What’s Obsolete in the Class Library for obsolete types and members, and apply the workaround described. (Скомпилированный ранее код будет продолжать работать с типами и членами, которые отмечены как устаревшие.) (Previously compiled code will continue to run against types and members that have been marked as obsolete.)
Если обнаруживается, что изменение в .NET Framework 4.5 нарушило работу приложения, обратитесь к разделу Схема параметров среды выполнения и, в частности, к подразделу Элемент , чтобы определить, можно ли использовать параметры среды выполнения в файле конфигурации приложения для восстановления предыдущего поведения. If you determine that a change in the .NET Framework 4.5 has broken your app, check the Runtime Settings Schema, and particularly the Element, to determine whether you can use a runtime setting in your app’s configuration file to restore the previous behavior.
Если у вас возникла незадокументированная проблема, откройте проблему на веб-сайте сообщества разработчиков .NET или в репозитории GitHub Microsoft/dotnet. If you come across an issue that isn’t documented, open a problem on the Developer Community site for .NET or open an issue in the Microsoft/dotnet GitHub repo.
Параллельное выполнение Side-by-side execution
Если найти подходящий обходной путь для проблемы не удается, помните, что платформа .NET Framework 4.5 (или один из ее доработанных выпусков) работает параллельно с версиями 1.1, 2.0 и 3.5 и представляет собой обновление «на месте», заменяющее версию 4. If you can’t find a suitable workaround for your issue, remember that .NET Framework 4.5 (or one of its point releases) runs side by side with versions 1.1, 2.0, and 3.5, and is an in-place update that replaces version 4. Для приложений, предназначенных для версий 1.1, 2.0 и 3.5, можно установить на целевом компьютере соответствующую версию .NET Framework и запускать приложение в оптимальной для него среде. For apps that target versions 1.1, 2.0, and 3.5, you can install the appropriate version of .NET Framework on the target machine to run the app in its best environment. Дополнительные сведения о параллельном выполнении см. в разделе Параллельное выполнение. For more information about side-by-side execution, see Side-by-Side Execution.