Automatyczne środowisko uruchomienioweIdentifier dla niektórych projektów
Projekty, które określają dowolną z poniższych właściwości, są teraz automatycznie uzyskiwane identyfikator środowiska uruchomieniowego (RID). Identyfikator RID umożliwia publikowanie samodzielnego wdrożenia.
SelfContained
PublishAot
PublishReadyToRun
PublishSingleFile
PublishSelfContained
(Tylko wersje zestawu .NET SDK 7.0.200 i nowszych)
Ta zmiana może mieć wpływ na następujące projekty:
- Stare projekty, które obejśły błąd brakującego identyfikatora środowiska uruchomieniowego.
- Projekty, które mają
RuntimeIdentifiers
, ale nieRuntimeIdentifier
. - Projekty, które korzystają ze zakodowanych ścieżek bez identyfikatorów ZAREZERWOWANYch.
- Projekty, które miały te właściwości, ale używały kompilacji zamiast publikowania i akceptowania publikowania w stanie przerwania.
Istnieją inne potencjalne niuanse, które mogą złamać poszczególne sytuacje, o których jeszcze nie jesteśmy świadomi.
Uwaga
Ta zmiana została ograniczona do dotnet publish
polecenia w zestawie SDK platformy .NET 7.0.200. Aby uzyskać więcej informacji, zobacz Automatic RuntimeIdentifier for publish only (Automatyczne środowisko uruchomienioweIdentifier tylko do publikowania).
Wprowadzona wersja
.NET 7
Poprzednie zachowanie
Wcześniej publikowanie tych projektów nie powiodło się z błędami, takimi jak:
Publikowanie aplikacji w jednym pliku nie jest obsługiwane bez określania identyfikatora RuntimeIdentifier. Określ parametr RuntimeIdentifier lub ustaw wartość False w polu PublishSingleFile.
LUB
błąd NETSDK1031: Nie jest obsługiwane kompilowanie ani publikowanie aplikacji samodzielnej bez określania elementu RuntimeIdentifier. Musisz określić wartość RuntimeIdentifier lub ustawić wartość SelfContained na false.
W niektórych przypadkach, takich jak PublishSingleFile
lub ze specjalną RuntimeIdentifiers
logiką, projekty mogły zostać utworzone pomyślnie bez elementu RuntimeIdentifier
.
Nowe zachowanie
Projekty, które określają dowolne właściwości wymienione na początku tego artykułu, zostaną automatycznie wyświetlone RuntimeIdentifier
. To nowe zachowanie może powodować błędy kompilacji w projektach, które są zależne RuntimeIdentifiers
od elementu , ale nie RuntimeIdentifier
, ponieważ RuntimeIdentifier
może mieć wpływ na ścieżkę wyjściową niezależnie od RuntimeIdentifiers
. Może również powodować błędy w AnyCPU
projektach, na PublishSingleFile
których polegają, ale nie zawsze dają element RuntimeIdentifier
podczas wykonywania innych akcji. Te błędy mogą być wyświetlane w następujący sposób:
Proces docelowy zakończył się bez podniesienia zdarzenia uruchomionego CoreCLR. Upewnij się, że proces docelowy jest skonfigurowany do używania platformy .NET Core.
Typ zmiany powodującej niezgodność
Ta zmiana może mieć wpływ na zgodność źródła.
Przyczyna wprowadzenia zmiany
Nie można opublikować większości projektów platformy .NET przy użyciu wymienionych właściwości bez RuntimeIdentifier
ustawienia. Ta zmiana zmniejsza konieczność ręcznego dodawania identyfikatora RID za każdym razem, gdy używasz wymienionych właściwości.
Zalecana akcja
Jeśli ma to wpływ na projekt, możesz wyłączyć funkcję automatyczną RuntimeIdentifier
, dodając <UseCurrentRuntimeIdentifier>false</UseCurrentRuntimeIdentifier>
go do pliku projektu.
Jeśli wystąpi przerwa z powodu zmiany ścieżki wyjściowej, dodaj <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
go do pliku projektu.