Udostępnij przez


Tworzenie pakietów narzędzi platformy .NET powoduje utworzenie pakietów narzędzi specyficznych dla środowiska RuntimeIdentifier

Proces tworzenia pakietów narzędzi platformy .NET został zmieniony, gdy RuntimeIdentifiers jest obecny w projekcie. Ponieważ zestaw SDK obsługuje teraz tworzenie narzędzi specyficznych dla platformy, RuntimeIdentifiers służy do określania zestawu platform, dla których mają być tworzone pakiety narzędzi.

Wersja wprowadzona

.NET 10

Poprzednie zachowanie

Wcześniej po uruchomieniu dotnet pack projektu z ustawioną wartością PackAsTooltrue, zignorował dowolny RuntimeIdentifierselement .

Nowe zachowanie

Począwszy od platformy .NET 10, RuntimeIdentifiers służy do określania zestawu platform, dla których mają być tworzone pakiety narzędzi.

Typ zmiany przełamującej

Jest to zmiana behawioralna.

Przyczyna zmiany

Ta zmiana umożliwia tworzenie zoptymalizowanych pakietów narzędzi .NET specyficznych dla platformy i obsługuje przypadki użycia, takie jak:

  • Narzędzia samodzielne.
  • Narzędzia skompaktowane i AOT.
  • Narzędzia, które mogą być ostatecznie używane na platformach bez zainstalowanego zestawu SDK lub środowiska uruchomieniowego.

Jeśli chcesz utworzyć narzędzia tylko dla podzbioru platform, użyj polecenia ToolPackageRuntimeIdentifiers. Jeśli chcesz całkowicie wyłączyć pakiety narzędzi specyficznych dla identyfikatorów RID, należy warunkowo dołączyć lub wykluczyć RuntimeIdentifiers właściwość w pliku projektu.

Alternatywnie, jeśli chcesz zachować poprzednie zachowanie (narzędzia .NET zależne od frameworka, niezależne od platformy), nawet jeśli RuntimeIdentifier jest określony, dodaj następujące właściwości do pliku projektu:

<PropertyGroup>
  <CreateRidSpecificToolPackages>false</CreateRidSpecificToolPackages>
  <UseAppHost>false</UseAppHost>
</PropertyGroup>

Interfejsy API, których dotyczy problem

Żaden.