RuntimeIdentifier-Warnung, wenn eigenständig nicht angegeben ist

Wenn Sie RuntimeIdentifier in Ihrer Projektdatei angeben oder die Option -r mit dotnet verwenden, legt das .NET SDK standardmäßig die Erstellungs-, Veröffentlichungs- und Ausführungsausgabe als eigenständige Anwendungen fest. Wenn die RuntimeIdentifier-Angabe fehlt, wird standardmäßig eine frameworkabhängige Anwendung verwendet. Diese Änderung führt zu einer neuen Warnung (NETSDK1179), wenn Sie RuntimeIdentifier angeben, ohne festzulegen, ob die Anwendung eigenständig ist.

Eingeführt in Version

.NET 6 RC 1

Vorheriges Verhalten

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

Neues Verhalten

Wenn Sie RuntimeIdentifier in .NET 6 angeben, ohne festzulegen, 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 wird die Warnung durch den folgenden Befehl generiert:

dotnet publish -r win-x86

Ändern der Kategorie

Diese Änderung könnte sich auf die Quellkompatibilität auswirken.

Grund für die Änderung

Wenn die RuntimeIdentifier-Angabe fehlt, wird standardmäßig eine frameworkabhängige Anwendung generiert. Diese Standardeinstellung sorgte bei vielen Kunden für Verwirrung. Die Warnung wurde aus folgenden Gründen hinzugefügt:

  • Sie soll Kunden vor der Verhaltensänderung warnen, die durch die standardmäßige Erstellung einer frameworkabhängigen App entsteht.
  • Sie soll Kunden dazu anhalten, den zu erstellenden Anwendungstyp explizit auszuwählen.
  • Sie soll Kunden auf eine mögliche Änderung des Verhaltens in .NET 7 vorbereiten, durch die die Frameworkabhängigkeit als Standardeinstellung festgelegt wird.
  • Geben Sie in der Projektdatei einen booleschen Wert für SelfContained an.
  • Fügen Sie alternativ dazu Ihrem Erstellungs- oder Veröffentlichungsbefehl --self-contained mit einem Wert hinzu.

Betroffene APIs

Nicht zutreffend

Siehe auch