Freigeben über


.NET Tool packaging creates RuntimeIdentifier-spezifische Toolpakete

Der Paketprozess für .NET-Tools hat sich geändert, wenn RuntimeIdentifiers sie im Projekt vorhanden sind. Da das SDK jetzt das Erstellen plattformspezifischer Tools unterstützt, werden sie verwendet, RuntimeIdentifiers um die Gruppe von Plattformen zu bestimmen, für die Toolpakete erstellt werden sollen.

Eingeführt in Version

.NET 10

Vorheriges Verhalten

Wenn Sie zuvor ein Projekt ausgeführt haben dotnet pack , auf PackAsTool das truefestgelegt ist, wurde es ignoriert RuntimeIdentifiers.

Neues Verhalten

Ab .NET 10 werden verwendet, um die Gruppe von Plattformen zu bestimmen, RuntimeIdentifiers für die Toolpakete erstellt werden sollen.

Art der einschneidenden Änderung

Dies ist eine Verhaltensänderung.

Grund für Änderung

Diese Änderung ermöglicht die Erstellung von optimierten, plattformspezifischen .NET-Toolpaketen und unterstützt Anwendungsfälle wie:

  • Eigenständige Werkzeuge.
  • Gekürzte und AOT-Tools.
  • Tools, die schließlich auf Plattformen verwendet werden können, ohne dass ein SDK oder eine Laufzeit installiert ist.

Wenn Sie Tools nur für eine Teilmenge von Plattformen erstellen möchten, verwenden Sie ToolPackageRuntimeIdentifiers. Wenn Sie RID-spezifische Toolpakete vollständig deaktivieren möchten, sollten Sie die Eigenschaft bedingt in die RuntimeIdentifiers Projektdatei einschließen oder ausschließen.

Alternativ, wenn Sie das vorherige Verhalten (frameworkabhängige, plattformunabhängige .NET-Tools) auch dann beibehalten möchten, wenn ein RuntimeIdentifier angegeben ist, fügen Sie die folgenden Eigenschaften zu Ihrer Projektdatei hinzu:

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

Betroffene APIs

Keiner.