Översikt över hur .NET är versionshanterat
.NET Runtime och .NET SDK lägger till nya funktioner med olika frekvenser. I allmänhet uppdateras SDK oftare än Runtime. Den här artikeln beskriver körnings- och SDK-versionsnumren.
.NET släpper en ny huvudversion varje november. Även numrerade versioner, till exempel .NET 6 eller .NET 8, stöds långsiktigt (LTS). Udda versioner stöds fram till nästa större version. Den senaste versionen av .NET är .NET 6.
Information om versionshantering
.NET Runtime har en major.minor.patch-metod för versionshantering som följer semantisk versionshantering.
.NET SDK följer dock inte semantisk versionshantering. .NET SDK släpps snabbare och dess versionsnummer måste kommunicera både den justerade körningen och SDK:ets egna delversioner och korrigeringsversioner.
De två första positionerna för versionsnumret för .NET SDK matchar den .NET Runtime-version som den släpptes med. Varje version av SDK:t kan skapa program för den här körningen eller en lägre version.
Den tredje positionen för SDK-versionsnumret kommunicerar både del- och korrigeringsnumret. Delversionen multipliceras med 100. De två sista siffrorna representerar korrigeringsnumret. Delversion 1, korrigering version 2 skulle representeras som 102. Här är till exempel en möjlig sekvens med körnings- och SDK-versionsnummer:
Ändra | .NET-körning | .NET SDK (*) |
---|---|---|
Första utgåvan | 5.0.0 | 5.0.100 |
SDK-korrigering | 5.0.0 | 5.0.101 |
Körnings- och SDK-korrigering | 5.0.1 | 5.0.102 |
SDK-funktionsändring | 5.0.1 | 5.0.200 |
ANTECKNINGAR:
- Om SDK:n har 10 funktionsuppdateringar före en körningsfunktionsuppdatering distribueras versionsnumren till 1000-serien. Version 5.0.1000 skulle följa version 5.0.900. Den här situationen förväntas inte inträffa.
- 99 korrigeringsversioner utan en funktionsversion kommer inte att ske. Om en version närmar sig det här numret tvingar den fram en funktionsversion.
Du kan se mer information i det ursprungliga förslaget på dotnet/designs-lagringsplatsen .
Semantisk versionshantering
.NET Runtime följer i stort sett semantisk versionshantering (SemVer) och använder versionshantering med hjälp av MAJOR.MINOR.PATCH
de olika delarna av versionsnumret för att beskriva graden och typen av ändring.
MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]
De valfria PRERELEASE
versionerna och BUILDNUMBER
delarna ingår aldrig i versioner som stöds och finns bara på nattliga versioner, lokala versioner från källmål och förhandsversioner som inte stöds.
Förstå ändringar av körningsversionsnummer
MAJOR
ökas en gång om året och kan innehålla:- Betydande förändringar i produkten eller en ny produktriktning.
- API introducerade icke-bakåtkompatibla ändringar. Det finns en hög stapel för att acceptera icke-bakåtkompatibla ändringar.
- En nyare
MAJOR
version av ett befintligt beroende antas.
Större versioner sker en gång om året och även numrerade versioner stöds på lång sikt (LTS). Den första LTS-versionen med det här versionsschemat är .NET 6. Den senaste icke-LTS-versionen är .NET 5.
MINOR
ökas när:- Offentlig API-yta läggs till.
- Ett nytt beteende läggs till.
- En nyare
MINOR
version av ett befintligt beroende antas. - Ett nytt beroende introduceras.
PATCH
ökas när:- Felkorrigeringar görs.
- Stöd för en nyare plattform läggs till.
- En nyare
PATCH
version av ett befintligt beroende antas. - Andra ändringar passar inte i något av de föregående fallen.
När det finns flera ändringar ökas det högsta elementet som påverkas av enskilda ändringar och följande återställs till noll. När inkrementellt till exempel MAJOR
återställs MINOR.PATCH
till noll. När MINOR
är inkrementerad återställs PATCH
till noll medan MAJOR
förblir densamma.
Versionsnummer i filnamn
Filerna som laddats ned för .NET har till exempel dotnet-sdk-5.0.301-win10-x64.exe
versionen .
Förhandsversioner
Förhandsversioner har lagts -preview.[number].[build]
till i versionsnumret. Till exempel 6.0.0-preview.5.21302.13
.
Serviceversioner
När en version har släppts slutar versionsgrenarna vanligtvis att producera dagliga byggen och börjar i stället producera serviceversioner. Serviceversioner har lagts -servicing-[number]
till i versionen. Till exempel 5.0.1-servicing-006924
.