Omówienie wersji platformy .NET CoreOverview of how .NET Core is versioned

.NET Core odwołuje się do środowiska uruchomieniowego .NET Core i zestaw .NET Core SDK, które zawiera narzędzia potrzebne do tworzenia aplikacji..NET Core refers to the .NET Core Runtime and the .NET Core SDK, which contains the tools you need to develop applications. Zestawy SDK platformy .NET Core są przeznaczone do pracy z dowolną poprzednią wersją środowiska uruchomieniowego platformy .NET Core..NET Core SDKs are designed to work with any previous version of the .NET Core Runtime. W tym artykule opisano strategię środowiska uruchomieniowego i wersji zestawu SDK.This article explains the runtime and the SDK version strategy. Informacje o numerach wersji .NET Standard można znaleźć w artykule wprowadzającym .NET Standard.An explanation of version numbers for .NET Standard can be found in the article introducing .NET Standard.

Środowisko uruchomieniowe platformy .NET Core i zestaw .NET Core SDK dodawać nowe funkcje z zastosowaniem różnych stawek ogólnie zestaw .NET Core SDK udostępniają zaktualizowane narzędzia szybciej niż środowisko uruchomieniowe programu .NET Core zmienia środowisko uruchomieniowe używane w środowisku produkcyjnym.The .NET Core Runtime and .NET Core SDK add new features at a different rate - in general the .NET Core SDK provides updated tools more quickly than the .NET Core Runtime changes the runtime you use in production.

Szczegóły dotyczące wersjiVersioning details

".NET Core 2,1" odwołuje się do numeru wersji środowiska uruchomieniowego platformy .NET Core.".NET Core 2.1" refers to the .NET Core Runtime version number. Środowisko uruchomieniowe programu .NET Core ma rozwiązane podstawowe/drobne/poprawka do wersji, która następuje po wersji semantycznej.The .NET Core Runtime has a major/minor/patch approach to versioning that follows semantic versioning.

Zestaw .NET Core SDK nie jest zgodna z wersją semantyczną.The .NET Core SDK doesn't follow semantic versioning. Zestaw .NET Core SDK wersje szybsze i jego wersje muszą komunikować się zarówno z wyrównanym środowiskiem uruchomieniowym, jak i wersjami pomocniczymi i poprawkami zestawu SDK.The .NET Core SDK releases faster and its versions must communicate both the aligned runtime and the SDK's own minor and patch releases. Pierwsze dwa pozycje wersji zestaw .NET Core SDK są blokowane dla środowiska uruchomieniowego platformy .NET Core wydanego za pomocą programu.The first two positions of the .NET Core SDK version are locked to the .NET Core Runtime it released with. Każda wersja zestawu SDK może tworzyć aplikacje dla tego środowiska uruchomieniowego lub dowolnej niższej wersji.Each version of the SDK can create applications for this runtime or any lower version.

Trzecia pozycja numeru wersji zestawu SDK komunikuje się zarówno z literą, jak i numerem poprawki.The third position of the SDK version number communicates both the minor and patch number. Wersja pomocnicza jest mnożona przez 100.The minor version is multiplied by 100. Wersja pomocnicza 1, Poprawka wersja 2 byłaby reprezentowana jako 102.Minor version 1, patch version 2 would be represented as 102. Ostatnie dwie cyfry reprezentują numer poprawki.The final two digits represent the patch number. Na przykład wydanie programu .NET Core 2,2 może tworzyć wersje, takie jak Następująca tabela:For example, the release of .NET Core 2.2 may create releases like the following table:

ZmianaChange Środowisko uruchomieniowe platformy .NET Core.NET Core Runtime Zestaw .NET Core SDK ( * ).NET Core SDK (*)
Wersja początkowaInitial release 2.2.02.2.0 2.2.1002.2.100
Poprawka zestawu SDKSDK Patch 2.2.02.2.0 2.2.1012.2.101
Środowisko uruchomieniowe i poprawka zestawu SDKRuntime and SDK Patch 2.2.12.2.1 2.2.1022.2.102
Zmiana funkcji zestawu SDKSDK Feature change 2.2.12.2.1 2.2.2002.2.200

( * ) Ten wykres używa środowiska uruchomieniowego 2,2 .NET Core jako przykładu, ponieważ artefakt historyczny mający pierwszy zestaw SDK dla platformy .net core 2,1 to 2.1.300.(*) This chart uses the 2.2 .NET Core Runtime as the example because a historic artifact meant the first SDK for .NET Core 2.1 is 2.1.300. Aby uzyskać więcej informacji, zobacz wybór wersji platformy .NET Core.For more information, See the .NET Core version selection.

ONOTES:

  • Jeśli zestaw SDK ma 10 aktualizacji funkcji przed aktualizacją funkcji środowiska uruchomieniowego, numery wersji są przydzielone do serii 1000 z liczbami takimi jak 2.2.1000 jako wersja funkcji po 2.2.900.If the SDK has 10 feature updates before a runtime feature update, version numbers roll into the 1000 series with numbers like 2.2.1000 as the feature release following 2.2.900. Ta sytuacja nie powinna wystąpić.This situation isn't expected to occur.
  • 99 wersje poprawek bez wydania funkcji nie zostaną wykonane.99 patch releases without a feature release won't occur. Jeśli wersja zbliża się do tej liczby, wymusza wydanie funkcji.If a release approaches this number, it forces a feature release.

Więcej szczegółów można znaleźć w wstępnej propozycji w repozytorium dotnet/Designing .You can see more details in the initial proposal at the dotnet/designs repository.

Wersja semantycznaSemantic versioning

Środowisko uruchomieniowe programu .NET Core jest w przybliżeniu zgodne z wersją semantyki (SemVer), MAJOR.MINOR.PATCH przy użyciu różnych części numeru wersji do opisania stopnia i typu zmiany.The .NET Core Runtime roughly adheres to Semantic Versioning (SemVer), adopting the use of MAJOR.MINOR.PATCH versioning, using the various parts of the version number to describe the degree and type of change.

MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]

Opcjonalne PRERELEASE i BUILDNUMBER części nie są nigdy częścią obsługiwanych wersji i istnieją tylko w przypadku nocnych kompilacji, lokalne kompilacje ze źródłowych elementów docelowych i nieobsługiwane wersje wersji zapoznawczej.The optional PRERELEASE and BUILDNUMBER parts are never part of supported releases and only exist on nightly builds, local builds from source targets, and unsupported preview releases.

Informacje o zmianach numeru wersji środowiska uruchomieniowegoUnderstand runtime version number changes

MAJORjest zwiększana, gdy:MAJOR is incremented when:

  • Wprowadzono znaczące zmiany w produkcie lub nowy kierunek produktu.Significant changes occur to the product, or a new product direction.
  • Wprowadzono istotne zmiany.Breaking changes were taken. Istnieje wysoki poziom akceptowania istotnych zmian.There's a high bar to accepting breaking changes.
  • Stara wersja nie jest już obsługiwana.An old version is no longer supported.
  • MAJORPrzyjęto nowszą wersję istniejącej zależności.A newer MAJOR version of an existing dependency is adopted.

MINORjest zwiększana, gdy:MINOR is incremented when:

  • Dodano publiczny obszar powierzchni interfejsu API.Public API surface area is added.
  • Zostanie dodane nowe zachowanie.A new behavior is added.
  • MINORPrzyjęto nowszą wersję istniejącej zależności.A newer MINOR version of an existing dependency is adopted.
  • Zostanie wprowadzona nowa zależność.A new dependency is introduced.

PATCHjest zwiększana, gdy:PATCH is incremented when:

  • Wprowadzono poprawki błędów.Bug fixes are made.
  • Dodano obsługę nowszej platformy.Support for a newer platform is added.
  • PATCHPrzyjęto nowszą wersję istniejącej zależności.A newer PATCH version of an existing dependency is adopted.
  • Jakakolwiek inna zmiana nie pasuje do jednego z poprzednich przypadków.Any other change doesn't fit one of the previous cases.

W przypadku zmiany wielu zmian najwyższy element, na który wpływają poszczególne zmiany, jest zwiększany, a następujące są resetowane do zera.When there are multiple changes, the highest element affected by individual changes is incremented, and the following ones are reset to zero. Na przykład gdy MAJOR jest zwiększana, MINOR i PATCH są resetowane do zera.For example, when MAJOR is incremented, MINOR and PATCH are reset to zero. Gdy MINOR jest zwiększana, PATCH jest resetowana do zera, podczas gdy pozostaje MAJOR nienaruszony.When MINOR is incremented, PATCH is reset to zero while MAJOR is left untouched.

Numery wersji w nazwach plikówVersion numbers in file names

Pliki pobrane dla platformy .NET Core przenoszą wersję, na przykład dotnet-sdk-2.1.300-win10-x64.exe .The files downloaded for .NET Core carry the version, for example, dotnet-sdk-2.1.300-win10-x64.exe.

Wersje zapoznawczePreview versions

Wersje zapoznawcze mają -preview[number]-([build]|"final") dołączony do wersji.Preview versions have a -preview[number]-([build]|"final") appended to the version. Na przykład 2.0.0-preview1-final.For example, 2.0.0-preview1-final.

Wersje obsługiServicing versions

Po wyjściu z wersji, gałęzie wydań zwykle zatrzymują codzienne kompilacje i zamiast tego uruchamiają kompilacje obsługi.After a release goes out, the release branches generally stop producing daily builds and instead start producing servicing builds. Wersje obsługujące zostały -servicing-[number] dołączone do wersji.Servicing versions have a -servicing-[number] appended to the version. Na przykład 2.0.1-servicing-006924.For example, 2.0.1-servicing-006924.

Relacja z wersjami .NET StandardRelationship to .NET Standard versions

.NET Standard składa się z zestawu odwołań platformy .NET..NET Standard consists of a .NET reference assembly. Istnieje wiele implementacji specyficznych dla każdej platformy.There are multiple implementations specific to each platform. Zestaw odwołań zawiera definicję interfejsów API platformy .NET, które są częścią danej .NET Standard wersji.The reference assembly contains the definition of .NET APIs which are part of a given .NET Standard version. Każda implementacja spełnia umowę .NET Standard na określonej platformie.Each implementation fulfills the .NET Standard contract on the specific platform. Więcej informacji na temat .NET Standard można znaleźć w artykule na .NET Standard w przewodniku po platformie .NET.You can learn more about .NET Standard in the article on .NET Standard in the .NET Guide.

Zestaw odwołań .NET Standard używa MAJOR.MINOR schematu przechowywania wersji.The .NET Standard reference assembly uses a MAJOR.MINOR versioning scheme. PATCHpoziom nie jest użyteczny w przypadku .NET Standard, ponieważ uwidacznia tylko specyfikację interfejsu API (bez implementacji) i według definicji jakakolwiek zmiana w interfejsie API będzie reprezentować zmianę zestawu funkcji i w związku z tym nową MINOR wersją.PATCH level isn't useful for .NET Standard because it exposes only an API specification (no implementation) and by definition any change to the API would represent a change in the feature set, and thus a new MINOR version.

Implementacje na każdej platformie mogą być aktualizowane, zazwyczaj jako część wersji platformy, i nie są widoczne dla programistów używających .NET Standard na tej platformie.The implementations on each platform may be updated, typically as part of the platform release, and thus not evident to the programmers using .NET Standard on that platform.

Każda wersja programu .NET Core implementuje wersję .NET Standard.Each version of .NET Core implements a version of .NET Standard. Zaimplementowanie wersji .NET Standard oznacza obsługę wcześniejszych wersji .NET Standard.Implementing a version of .NET Standard implies support for previous versions of .NET Standard. Niezależna wersja .NET Standard i .NET Core..NET Standard and .NET Core version independently. Jest to współdziałanie, które program .NET Core 2,0 implementuje .NET Standard 2,0.It's a coincidence that .NET Core 2.0 implements .NET Standard 2.0. Platforma .NET Core 2,1 implementuje również .NET Standard 2,0..NET Core 2.1 also implements .NET Standard 2.0. Platforma .NET Core będzie obsługiwała przyszłe wersje .NET Standard, gdy staną się dostępne..NET Core will support future versions of .NET Standard as they become available.

.NET Core.NET Core .NET Standard.NET Standard
1.01.0 do 1,6up to 1.6
2.02.0 do 2,0up to 2.0
2.12.1 do 2,0up to 2.0
2.22.2 do 2,0up to 2.0
3.03.0 do 2,1up to 2.1
3,13.1 do 2,1up to 2.1

W przypadku interaktywnej tabeli wersji .NET Standard i sposobu, w jaki są one zgodne z implementacjami .NET, zobacz .NET Standard wersje.For an interactive table of the .NET Standard versions, and how they correspond to .NET implementations, see .NET Standard versions.

Zobacz takżeSee also