Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Projekte, die eine der folgenden Eigenschaften angeben, erhalten jetzt automatisch einen Laufzeitbezeichner (RID ). Ein Runtimebezeichner ermöglicht das Veröffentlichen einer eigenständigen Bereitstellung.
SelfContained
PublishAot
PublishReadyToRun
PublishSingleFile
-
PublishSelfContained
(Nur.NET SDK 7.0.200 und höhere Versionen)
Die folgenden Projekte können von dieser Änderung betroffen sein:
- Alte Projekte, die den fehlenden Laufzeitbezeichnerfehler umgangen haben.
- Projekte mit
RuntimeIdentifiers
, aber ohneRuntimeIdentifier
- Projekte, die hartcodierte Pfade ohne RIDs verwenden.
- Projekte, die über diese Eigenschaften verfügt, aber einen Buildvorgang anstelle eines Veröffentlichungsvorgangs verwendet haben, und bei denen es akzeptabel war, dass sich der Veröffentlichungsvorgang in einem fehlerhaften Zustand befindet
Es gibt ggf. noch weitere Nuancen, die in bestimmten Situationen zu Unterbrechungen führen können und uns noch nicht bekannt sind.
Hinweis
Diese Änderung wurde auf den dotnet publish
Befehl im .NET 7.0.200 SDK beschränkt. Weitere Informationen finden Sie unter Automatische Runtime-ID nur für die Veröffentlichung.
Eingeführte Version
.NET 7
Vorheriges Verhalten
Bisher scheiterten diese Projekte daran, veröffentlicht zu werden, aufgrund von Fehlern wie:
Es wird nicht unterstützt, eine Anwendung in einer einzelnen Datei zu veröffentlichen, ohne einen RuntimeIdentifier anzugeben. Geben Sie entweder einen RuntimeIdentifier an, oder legen Sie "PublishSingleFile" auf "false" fest.
ODER
fehler NETSDK1031: Es wird nicht unterstützt, eine eigenständige Anwendung zu erstellen oder zu veröffentlichen, ohne einen RuntimeIdentifier anzugeben. Sie müssen entweder einen RuntimeIdentifier angeben oder SelfContained auf "false" festlegen.
In manchen Fällen (etwa PublishSingleFile
oder bei spezieller RuntimeIdentifiers
-Logik) wurden Projekte möglicherweise ohne RuntimeIdentifier
erfolgreich erstellt.
Neues Verhalten
Projekte, die eine der Eigenschaften angeben, die am Anfang dieses Artikels aufgelistet sind, erhalten automatisch ein RuntimeIdentifier
. Dieses neue Verhalten kann zu Buildfehlern bei Projekten führen, die RuntimeIdentifiers
verwenden, aber nicht RuntimeIdentifier
, da RuntimeIdentifier
den Ausgabepfad anders als RuntimeIdentifiers
beeinflussen kann. Es kann auch zu Fehlern bei AnyCPU
-Projekten führen, die PublishSingleFile
nutzen, aber bei anderen Aktionen nicht immer einen Runtimebezeichner (RuntimeIdentifier
) angeben. Diese Fehler können wie folgt angezeigt werden:
Der Zielprozess wurde beendet, ohne dass ein Ereignis zum Start von CoreCLR ausgelöst wurde. Stellen Sie sicher, dass der Zielprozess für die Verwendung von .NET Core konfiguriert ist.
Art der einschneidenden Änderung
Diese Änderung kann sich auf die Quellkompatibilität auswirken.
Grund für Änderung
Ein Großteil der .NET-Projekte kann nicht veröffentlicht werden, wenn die genannten Eigenschaften verwendet werden, ohne RuntimeIdentifier
festzulegen. Durch diese Änderung wird die Notwendigkeit reduziert, das RID jedes Mal manuell hinzuzufügen, wenn Sie die erwähnten Eigenschaften verwenden.
Empfohlene Aktion
Wenn Ihr Projekt betroffen ist, können Sie die automatische RuntimeIdentifier
-Option deaktivieren, indem Sie <UseCurrentRuntimeIdentifier>false</UseCurrentRuntimeIdentifier>
zu Ihrer Projektdatei hinzufügen.
Wenn aufgrund der Änderung des Ausgabepfads eine Unterbrechung auftritt, fügen Sie <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
zu Ihrer Projektdatei hinzu.