Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Среда выполнения .NET и пакет SDK для .NET добавляют новые функции на разных частотах. Как правило, пакет SDK обновляется чаще, чем среда выполнения. В этой статье объясняются номера версий среды выполнения и SDK.
.NET выпускает новую основную версию каждый ноябрь. Четные выпуски, такие как .NET 6 или .NET 8, имеют долгосрочную поддержку (LTS). Выпуски LTS получают бесплатную поддержку и исправления в течение трех лет. Нечетные выпуски обладают стандартным сроком поддержки. Выпуски поддержки уровня "Стандартный" получают бесплатную поддержку и исправления в течение 18 месяцев.
Сведения о версионировании
Среда выполнения .NET использует подход к версии major.minor.patch, который следует семантическому версионированию.
Однако пакет SDK для .NET не следует семантике управления версиями. Пакет SDK для .NET выпускается чаще, и его номера версий должны четко отображать как согласование с версией среды выполнения, так и собственные дополнительные и исправления пакета SDK.
Первые две позиции номера версии пакета SDK для .NET соответствуют выпущенной версии среды выполнения .NET. Каждая версия пакета SDK может создавать приложения для этой среды выполнения или любой более низкой версии.
Третья позиция номера версии пакета SDK указывает на минорный и исправленный номер. Минорная версия умножается на 100. Последние две цифры в последовательности представляют номер патча. Младшая версия 1, версия исправления 2 будет представлена как 102. Например, ниже приведена возможная последовательность номеров версий среды выполнения и пакета SDK:
Изменение | Среда выполнения .NET | Пакет SDK для .NET (*) | Примечания. |
---|---|---|---|
Первый релиз | 5.0.0 | 5.0.100 | Первый релиз. |
Исправление пакета SDK | 5.0.0 | 5.0.101 | Среда выполнения не изменилась с этим исправлением пакета SDK. Патч SDK увеличивает последнюю цифру версии в пакете SDK. |
Исправление среды выполнения и пакета SDK | 5.0.1 | 5.0.102 | Патч среды выполнения увеличивает номер версии патча среды выполнения. Патч SDK увеличивает последнюю цифру версии в пакете SDK. |
Изменение компонентов пакета SDK | 5.0.1 | 5.0.200 | Патч среды выполнения не изменился. Новая функция SDK увеличивает первую цифру патча SDK. |
Исправление среды выполнения | 5.0.2 | 5.0.200 | Патч среды выполнения увеличивает номер версии патча среды выполнения. Пакет SDK не изменяется. |
В предыдущей таблице можно увидеть несколько политик:
- Среда выполнения и пакет SDK используют одни и те же основные и минорные версии. Первые две цифры для конкретного SDK и среды выполнения должны совпадать. Все предыдущие примеры являются частью потока выпуска .NET 5.0.
- Патчевая версия среды выполнения меняется только при обновлении среды выполнения. Номер патча SDK не обновляется для патча среды выполнения.
- Версия исправления пакета SDK обновляется только при обновлении пакета SDK. Возможно, исправление среды выполнения не требует исправления пакета SDK.
ПРИМЕЧАНИЯ:
- Если пакет SDK получает 10 обновлений функций перед обновлением функции среды выполнения, номера версий переходят в 1000 серию. Версия 5.0.1000 будет соответствовать версии 5.0.900. Эта ситуация не ожидается.
- 99 выпусков исправлений без выпуска компонента не произойдет. Если выпуск приближается к этому числу, это приводит к выпуску новой функции.
Дополнительные сведения см. в первоначальном предложении в репозитории dotnet/designs .
Семантическое версионирование
Среда выполнения .NET примерно соответствует семантическому версионированию (SemVer), используя MAJOR.MINOR.PATCH
версионирование, включая различные части номера версии для описания степени и типа изменений.
MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]
Необязательные PRERELEASE
и BUILDNUMBER
части никогда не являются частью поддерживаемых выпусков и существуют только в ночных сборках, локальных сборках из исходных целевых объектов и неподдерживаемых предварительных выпусков.
Изменения номера версии среды выполнения
MAJOR
увеличивается один раз в год и может содержать:- Значительные изменения в продукте или новое направление продукта.
- API представил серьёзные изменения. Существует высокая планка для принятия ломающих изменений.
- Используется более новая
MAJOR
версия существующей зависимости.
Крупные выпуски происходят один раз в год, четные версии являются выпусками с долгосрочной поддержкой (LTS). Первый выпуск LTS с использованием этой схемы управления версиями — .NET 6. Последняя версия .NET, не LTS — 9.
MINOR
увеличивается, когда:- Расширена область доступности общедоступного API.
- Добавляется новое поведение.
- Используется более новая
MINOR
версия существующей зависимости. - Представлена новая зависимость.
PATCH
увеличивается, когда:- Исправление ошибок сделано.
- Добавлена поддержка более новой платформы.
- Используется более новая
PATCH
версия существующей зависимости. - Любое другое изменение не соответствует одному из предыдущих случаев.
При наличии нескольких изменений самый высокий элемент, затронутый отдельными изменениями, увеличивается, и следующие элементы сбрасываются до нуля. Например, когда MAJOR
увеличивается, MINOR.PATCH
сбрасываются до нуля. Когда MINOR
увеличивается, PATCH
сбрасывается до нуля, а MAJOR
остается неизменным.
Номера версий в именах файлов
Файлы, скачанные для .NET, несут версию, например dotnet-sdk-5.0.301-win-x64.exe
.
Предварительные версии
В предварительных версиях к номеру версии добавляется -preview.[number].[build]
. Например: 6.0.0-preview.5.21302.13
.
Версии для обслуживания
После выхода релиза релизные ветви, как правило, перестают производить ежедневные сборки и вместо этого начинают производить сборки обслуживания. К версиям обслуживания добавляется -servicing-[number]
. Например: 5.0.1-servicing-006924
.
Совместимость среды выполнения .NET
Среда выполнения .NET обеспечивает высокий уровень совместимости между версиями. Приложения .NET в целом должны продолжать работать после обновления до новой крупной версии среды выполнения .NET.
Каждая основная версия среды выполнения .NET содержит преднамеренные, тщательно проверенные и задокументированные критические изменения. Задокументированные критические изменения не являются единственным источником проблем, которые могут повлиять на приложение после обновления. Например, улучшение производительности в среде выполнения .NET (не считается критическим изменением) может выявлять скрытые ошибки в многопоточности приложения, которые приводят к тому, что приложение перестаёт работать на этой версии. Ожидается, что для крупных приложений требуется несколько исправлений после обновления до новой основной версии среды выполнения .NET.
По умолчанию приложения .NET настроены для запуска в заданной основной версии среды выполнения .NET, поэтому для обновления приложения настоятельно рекомендуется обновить приложение для запуска новой основной версии среды выполнения .NET. Затем повторите тестирование приложения после обновления, чтобы определить все проблемы.
Предположим, что обновление с помощью повторной компиляции приложений невозможно. В этом случае среда выполнения .NET предоставляет дополнительные параметры , позволяющие приложению работать в более высокой основной версии среды выполнения .NET, чем для версии, для нее скомпилированной. Эти параметры не изменяют риски, связанные с обновлением приложения до более высокой основной версии среды выполнения .NET, и это по-прежнему необходимо для повторного тестирования после обновления приложения.
Среда выполнения .NET поддерживает загрузку библиотек, предназначенных для старых версий среды выполнения .NET. Приложение, которое обновлено до более новой основной версии среды выполнения .NET, может ссылаться на библиотеки и пакеты NuGet, предназначенные для более старых версий среды выполнения .NET. Не нужно одновременно обновлять целевую версию среды выполнения всех библиотек и пакетов NuGet, на которые ссылается приложение.