Ö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.exeversionen .

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.

Se även