RuntimeIdentifier zwraca platformę, dla której utworzono środowisko uruchomieniowe
RuntimeInformation.RuntimeIdentifier Zwraca platformę, dla której utworzono środowisko uruchomieniowe, a nie wartość obliczoną w czasie wykonywania.
Poprzednie zachowanie
Wartość była identyfikatorem środowiska uruchomieniowego (RID) obliczanym za pośrednictwem plików systemu operacyjnego lub interfejsów API. Zazwyczaj oznaczało to, że był to identyfikator RID specyficzny dla wersji i dystrybucji. Na przykład w przypadku uruchamiania aplikacji w systemie Windows 11 wartość to win10-x64
lub, w systemie Ubuntu 20.04, może to być ubuntu.20.04-x64
.
Nowe zachowanie
Począwszy od platformy .NET 8, wartość jest identyfikatorem RID, dla którego utworzono środowisko uruchomieniowe. Oznacza to, że w przypadku przenośnych kompilacji środowiska uruchomieniowego (wszystkie kompilacje dostarczone przez firmę Microsoft) wartość jest specyficzna dla wersji i nie jest specyficzna dla dystrybucji. Na przykład wartość w systemie Windows 11 to win-x64
, a w systemie Ubuntu 20.04 jest linux-x64
to . W przypadku kompilacji innych niż przenośne (source-build) kompilacja ustawia identyfikator RID kompilacji, który może mieć wersję i dystrybucję, a wartość jest zwracanym identyfikatorem RID.
Wprowadzona wersja
.NET 8 RC 1
Typ zmiany powodującej niezgodność
Ta zmiana jest zmianą behawioralną.
Przyczyna wprowadzenia zmiany
Ta zmiana jest zgodna ze zmianą platformy .NET 8 na rozpoznawanie zasobów specyficznych dla identyfikatorów RID i odejściem od środowiska uruchomieniowego obsługującego dystrybucję. RuntimeInformation.RuntimeIdentifier jest nieprzezroczystą wartością, która powinna reprezentować platformę, na której host lub środowisko uruchomieniowe uważa się za uruchomione. Na platformie .NET 8 odpowiada platformie, dla której jest skompilowany host lub środowisko uruchomieniowe, a nie identyfikator RID obliczony w czasie wykonywania.
Zalecana akcja
RuntimeInformation.RuntimeIdentifier jest nieprzezroczystą wartością i nie ma być analizowana w jego części składników. W przypadku wersji systemu operacyjnego rzeczywistej maszyny uruchomionej na aplikacji użyj polecenia Environment.OSVersion. Aby uzyskać opis, użyj polecenia RuntimeInformation.OSDescription. W przypadku określonego identyfikatora (dystrybucji) i odpowiedniej wersji w systemie Linux można odczytać plik wersji systemu operacyjnego.