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.
.NET Core eigenständige Anwendungsbereitstellungen umfassen sowohl die .NET Core-Bibliotheken als auch die .NET Core-Laufzeit. Beginnend mit .NET Core SDK 2.1 (Version 2.1.300) veröffentlicht eine eigenständige Anwendungsbereitstellung die höchste Patch-Runtime auf Ihrem Computer.
dotnet publish wählt für eine eigenständige Bereitstellung standardmäßig die aktuellste installierte Version als Teil des SDK auf dem veröffentlichenden Computer aus. Auf diese Weise kann Ihre bereitgestellte Anwendung mit Sicherheitskorrekturen (und anderen Korrekturen) ausgeführt werden, die während publish verfügbar sind. Die Anwendung muss erneut veröffentlicht werden, um einen neuen Patch zu erhalten. Eigenständige Anwendungen werden durch Angeben des -r <RID> Befehls oder durch Angeben dotnet publish des Laufzeitbezeichners (RID) in der Projektdatei (csproj / vbproj) oder in der Befehlszeile erstellt.
Übersicht über Rollforward der Patchversion
restoreund buildpublish sind dotnet Befehle, die separat ausgeführt werden können. Die Laufzeitauswahl ist Teil des restore Vorgangs, nicht publish oder build. Wenn Sie anrufen publish, wird die neueste Patchversion ausgewählt. Wenn Sie publish mit dem --no-restore Argument aufrufen, erhalten Sie möglicherweise nicht die gewünschte Patch-Version, da ein vorheriges restore möglicherweise nicht mit der neuen eigenständigen Anwendungspublikationsrichtlinie ausgeführt wurde. In diesem Fall wird ein Buildfehler mit Text generiert, der den folgenden ähnelt:
"Das Projekt wurde mit Microsoft.NETCore.App Version 2.0.0 wiederhergestellt, aber mit den aktuellen Einstellungen wird stattdessen Version 2.0.6 verwendet. Um dieses Problem zu beheben, stellen Sie sicher, dass dieselben Einstellungen für die Wiederherstellung und für nachfolgende Vorgänge wie Build oder Veröffentlichung verwendet werden. In der Regel kann dieses Problem auftreten, wenn die RuntimeIdentifier-Eigenschaft während des Builds oder veröffentlichen, aber nicht während der Wiederherstellung festgelegt wird."
Hinweis
restore und build können implizit als Teil eines anderen Befehls ausgeführt werden, wie publish. Wenn sie implizit als Teil eines anderen Befehls ausgeführt werden, werden sie mit zusätzlichem Kontext bereitgestellt, sodass die richtigen Artefakte erstellt werden. Wenn Sie publish mit einer Runtime ausführen (z.B. dotnet publish -r linux-x64), stellt restore Pakete implizit für die Linux-x64-Runtime wieder her. Wenn Sie restore explizit aufrufen, werden standardmäßig keine Laufzeitpakete wiederhergestellt, da der Kontext fehlt.
Umgehen von restore während publish
Die Ausführung von restore als Teil der publish Operation könnte in Ihrem Szenario unerwünscht sein. Führen Sie die folgenden Schritte aus, um restore während publish beim Erstellen eigenständiger Anwendungen zu vermeiden:
- Legen Sie die
RuntimeIdentifiersEigenschaft auf eine durch Semikolons getrennte Liste aller zu veröffentlichenden RIDs fest. - Legen Sie die
TargetLatestRuntimePatch-Eigenschaft auftruefest.
No-restore-Argument mit dotnet publish-Optionen
Wenn Sie sowohl eigenständige Anwendungen als auch frameworkabhängige Anwendungen mit derselben Projektdatei erstellen möchten und das --no-restore Argument mit dotnet publishverwenden möchten, wählen Sie eine der folgenden Optionen aus:
Framework-abhängiges Verhalten bevorzugen. Wenn die Anwendung frameworkabhängig ist, ist dies das Standardverhalten. Wenn die Anwendung eigenständig ist und eine nicht gepatchte lokale 2.1.0-Laufzeit verwenden kann, setzen Sie
TargetLatestRuntimePatchauffalsein der Projektdatei.Eigenständiges Verhalten bevorzugen. Wenn die Anwendung eigenständig ist, ist dies das Standardverhalten. Wenn die Anwendung frameworkabhängig ist und den neuesten Patch benötigt, setzen Sie
TargetLatestRuntimePatchauftruein der Projektdatei.Übernehmen Sie die explizite Kontrolle über die Laufzeitframeworkversion, indem Sie
RuntimeFrameworkVersionauf die spezifische Patchversion in der Projektdatei festlegen.