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.
Empfohlene Maßnahme
- 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