Sdílet prostřednictvím


Jak je .NET verzován

Modul runtime .NET a sada .NET SDK přidávají nové funkce s různými frekvencemi. Obecně platí, že sada SDK se aktualizuje častěji než modul runtime. Tento článek vysvětluje modul runtime a čísla verzí sady SDK.

.NET vydává novou hlavní verzi každý listopad. Verze se sudým číslem, jako jsou verze .NET 6 nebo .NET 8, jsou dlouhodobě podporované (LTS). Verze LTS získají bezplatnou podporu a opravy po dobu tří let. Liché verze mají standardní dobu podpory. Verze standardní podpory získají bezplatnou podporu a opravy po dobu 18 měsíců.

Podrobnosti o správě verzí

Modul runtime .NET má přístup major.minor.patch k správě verzí, který následuje po sémantické správě verzí.

Sada .NET SDK ale nedodržuje sémantickou správu verzí. Vydání sady .NET SDK jsou rychlejší a čísla jeho verzí musí vyjadřovat jak zarovnaný runtime, tak i vlastní dílčí a opravné verze sady SDK.

První dvě pozice čísla verze sady .NET SDK odpovídají verzi .NET runtime, s níž byla vydána. Každá verze sady SDK může vytvářet aplikace pro toto běhové prostředí nebo jakoukoli nižší verzi.

Třetí pozice čísla verze sady SDK ukazuje číslo podverze i číslo opravy. Menší verze se vynásobí číslem 100. Číslo opravy představují poslední dvě číslice. Podverze 1, verze opravy 2 by byla reprezentována jako 102. Tady je například možná posloupnost čísel verzí modulu runtime a sady SDK:

Změna Prostředí .NET .NET SDK (*) Poznámky
První vydání 5.0.0 5.0.100 Počáteční verze.
Oprava sady SDK 5.0.0 5.0.101 Modul runtime se při této opravě sady SDK nezměnil. Opravy SDK zvýší poslední číslici v opravě SDK.
Oprava modulu runtime a sady SDK 5.0.1 5.0.102 Oprava modulu runtime zvyšuje číslo jeho verze. Opravy SDK zvýší poslední číslici v opravě SDK.
Změna funkcí sady SDK 5.0.1 5.0.200 Oprava modulu runtime se nezměnila. Nová funkce sady SDK zvýší první číslici v aktualizaci verze SDK.
Oprava modulu runtime 5.0.2 5.0.200 Oprava modulu runtime zvyšuje číslo jeho verze. Sada SDK se nemění.

V předchozí tabulce vidíte několik zásad:

  • Runtime a sada SDK sdílejí hlavní a druhotné verze. První dvě čísla pro danou sadu SDK a runtime by měla se shodovat. Všechny předchozí příklady jsou součástí streamu verze .NET 5.0.
  • Verze opravy modulu runtime revs pouze při aktualizaci modulu runtime. Číslo opravy sady SDK se neaktualizuje pro opravu modulu runtime.
  • Verze opravy sady SDK se aktualizuje pouze při aktualizaci sady SDK. Je možné, že oprava modulu runtime nevyžaduje opravu sady SDK.

POZNÁMKY:

  • Pokud sada SDK obsahuje 10 aktualizací funkcí před aktualizací funkcí modulu runtime, čísla verzí se zahrnou do řady 1000. Verze 5.0.1000 bude následovat po verzi 5.0.900. Tato situace se neočekává.
  • 99 aktualizací oprav bez vydání nové funkce se neuskuteční. Pokud se verze blíží tomuto číslu, vynutí uvolnění nové funkce.

Další podrobnosti najdete v počátečním návrhu v úložišti dotnet/designs .

Sémantická správa verzí

Modul runtime .NET zhruba dodržuje sémantickou správu verzí (SemVer) a přijímá použití MAJOR.MINOR.PATCH správy verzí pomocí různých částí čísla verze k popisu stupně a typu změny.

MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]

Volitelné části PRERELEASE a BUILDNUMBER nejsou nikdy součástí podporovaných verzí a existují pouze v nočních kompilacích, místních kompilacích ze zdrojových kódů a nepodporovaných předběžných verzích.

Změny čísel verzí běhového prostředí

  • MAJOR se zvýší jednou za rok a může obsahovat:

    • Významné změny v produktu nebo v novém směru produktu.
    • Rozhraní API zavedlo zásadní změny. Je tu vysoká laťka pro přijetí zásadních změn.
    • Přijme se novější MAJOR verze existující závislosti.

    Hlavní verze jsou vydávány jednou za rok, sudé verze jsou verze s dlouhodobou podporou (LTS). První verze LTS používající toto schéma správy verzí je .NET 6. Nejnovější verze než LTS je .NET 9.

  • MINOR se zvýší, když:

    • Přidá se plocha veřejného rozhraní API.
    • Přidá se nové chování.
    • Přijme se novější MINOR verze existující závislosti.
    • Zavádí se nová závislost.
  • PATCH se zvýší, když:

    • Byly provedeny opravy chyb.
    • Byla přidána podpora pro novější platformu.
    • Přijme se novější PATCH verze existující závislosti.
    • Žádná jiná změna se nevejde do jednoho z předchozích případů.

Pokud dojde k několika změnám, nejvyšší prvek ovlivněný jednotlivými změnami se zvýší a následující prvky se resetují na nulu. Pokud je například MAJOR přírůstkový, MINOR.PATCH resetují se na nulu. Když se MINOR zvýší, PATCH se resetuje na nulu, zatímco MAJOR zůstane stejná.

Čísla verzí v názvech souborů

Soubory stažené pro .NET mají například dotnet-sdk-5.0.301-win-x64.exeverzi .

Náhledové verze

Verze Preview mají připojenou -preview.[number].[build] k číslu verze. Například: 6.0.0-preview.5.21302.13.

Servisní verze

Po uvolnění verze větve vydané verze obvykle přestanou vytvářet denní buildy a místo toho začnou vytvářet servisní buildy. V servisní verzi je připojeno -servicing-[number]. Například: 5.0.1-servicing-006924.

Kompatibilita modulu runtime .NET

Modul runtime .NET udržuje vysokou úroveň kompatibility mezi verzemi. Aplikace .NET by měly po upgradu na novou hlavní verzi modulu runtime .NET i nadále fungovat.

Každá hlavní verze modulu runtime .NET obsahuje úmyslné, pečlivě prověřené a zdokumentované zásadní změny. Zdokumentované zásadní změny nejsou jediným zdrojem problémů, které můžou po upgradu ovlivnit aplikaci. Například zlepšení výkonu v modulu runtime .NET (které se nepovažuje za zásadní změnu) může odhalit latentní problémy vlákna v aplikaci, které způsobují, že aplikace nefunguje v této verzi. Očekává se, že velké aplikace budou po upgradu na novou hlavní verzi .NET Runtime vyžadovat několik oprav.

Ve výchozím nastavení se aplikace .NET konfigurují tak, aby běžely na dané hlavní verzi modulu runtime .NET, takže se důrazně doporučuje upgradovat aplikaci tak, aby běžela na nové hlavní verzi modulu runtime .NET. Potom aplikaci po upgradu znovu otestujte, abyste identifikovali případné problémy.

Předpokládejme, že upgrade prostřednictvím rekompilace aplikací není možný. V takovém případě modul runtime .NET poskytuje další nastavení , která aplikaci umožní spustit na vyšší hlavní verzi modulu runtime .NET, než pro kterou byla zkompilována. Tato nastavení nemění rizika spojená s upgradem aplikace na vyšší hlavní verzi modulu runtime .NET a přesto je potřeba aplikaci po upgradu znovu otestovat.

Modul runtime .NET podporuje načítání knihoven, které cílí na starší verze modulu runtime .NET. Aplikace upgradovaná na novější hlavní verzi modulu runtime .NET může odkazovat na knihovny a balíčky NuGet, které cílí na starší verze modulu runtime .NET. Není nutné současně upgradovat cílovou verzi modulu runtime všech knihoven a balíčků NuGet, které aplikace používá nebo na které odkazuje.

Viz také