Freigeben über


RuntimeIdentifier-Warnung, wenn eigenständig nicht angegeben ist

Wenn Sie eine RuntimeIdentifier in Ihrer Projektdatei angeben oder die -r Option mit dotnet verwenden, legt das .NET SDK standardmäßig fest, dass die Build-, Veröffentlichungs- und Ausgabergebnisse eigenständige Anwendungen sind. Der Standardwert ohne Angabe RuntimeIdentifier ist, dass eine frameworkabhängige Anwendung vorhanden ist. Diese Änderung führt eine neue Warnung (NETSDK1179) ein, wenn Sie eine RuntimeIdentifier ohne Angabe angeben, ob die Anwendung eigenständig ist.

Eingeführte Version

.NET 6 RC 1

Vorheriges Verhalten

In früheren Versionen wurde durch die Angabe einer RuntimeIdentifier die Anwendung stillschweigend von einer frameworkabhängigen Anwendung in eine eigenständige Anwendung geändert.

Neues Verhalten

Wenn Sie in .NET 6 eine RuntimeIdentifier ohne Angabe angeben, ob die Anwendung eigenständig ist, erhalten Sie die folgende Warnung:

Warnung NETSDK1179: Eine der Optionen „--self-contained“ oder „--no-self-contained“ ist erforderlich, wenn „--runtime“ verwendet wird.

Beispielsweise generiert der folgende Befehl die Warnung:

dotnet publish -r win-x86

Kategorie ändern

Diese Änderung kann sich auf die Quellkompatibilität auswirken.

Grund für Änderung

Der Standardwert ohne Angabe RuntimeIdentifier besteht darin, eine frameworkabhängige Anwendung zu generieren. Diese Standardeinstellung verursachte Verwirrung für viele Kunden. Der Zweck des Hinzufügens der Warnung besteht darin, folgendes zu tun:

  • Sie soll Kunden vor der Verhaltensänderung warnen, die durch die standardmäßige Erstellung einer frameworkabhängigen App entsteht.
  • Ermutigen Sie Kunden, die Art der Anwendung auszuwählen, die sie erstellen möchten.
  • Bereiten Sie die Kunden darauf vor, dass das Verhalten in .NET 7 möglicherweise standardmäßig framework-abhängig wird.
  • Geben Sie einen booleschen Wert in der Projektdatei für SelfContained.
  • Oder fügen Sie --self-contained mit einem Wert zu Ihrem Build- oder Publish-Befehl hinzu.

Betroffene APIs

Nicht verfügbar

Siehe auch