Freigeben über


Ausgabeänderung bei den dotnet workload-Befehlen

Die Ausgabe der folgenden Befehle hat sich geändert:

  • dotnet workload list --machine-readable
  • dotnet workload install --print-download-link-only
  • dotnet workload update --print-download-link-only
  • dotnet workload update --print-rollback

Zuvor haben die betroffenen Befehle Folgendes ausgegeben:

  • Start- und Endbegrenzungslinien für das benutzerdefinierte Parsen, um den JSON-Text zu finden
  • Alle anderen Protokollierungstexte, die von den Befehlen während des normalen Vorgangs ausgegeben wurden
  • Der JSON-Textkörper

Jetzt geben diese Befehle nur den JSON-Textkörper aus.

Vorheriges Verhalten

Zuvor haben die betroffenen dotnet workload-Befehle eine Ausgabe erzeugt, die der folgenden für den Befehl dotnet workload list --machine-readable ähnelt:

Failed to update the advertising manifest microsoft.net.sdk.tvos: Unable to load the service index for source https://REDACTED/index.json..
Failed to update the advertising manifest microsoft.net.sdk.android: Unable to load the service index for source https://REDACTED/index.json..
Failed to update the advertising manifest microsoft.net.sdk.maui: Unable to load the service index for source https://REDACTED/index.json..
Failed to update the advertising manifest microsoft.net.workload.emscripten: Unable to load the service index for source https://REDACTED/index.json..
Failed to update the advertising manifest microsoft.net.sdk.macos: Unable to load the service index for source https://REDACTED/index.json..
Failed to update the advertising manifest microsoft.net.sdk.maccatalyst: Unable to load the service index for source https://REDACTED/index.json..
Failed to update the advertising manifest microsoft.net.sdk.ios: Unable to load the service index for source https://REDACTED/index.json..
Failed to update the advertising manifest microsoft.net.workload.mono.toolchain: Unable to load the service index for source https://REDACTED/index.json..
==workloadListJsonOutputStart==
{"installed":["macos","ios"],"updateAvailable":[{"existingManifestVersion":"12.0.101-preview.10.249","availableUpdateManifestVersion":"12.0.101-preview.10.251","description":".NET SDK Workload for building macOS applications.","workloadId":"macos"},{"existingManifestVersion":"15.0.101-preview.9.31","availableUpdateManifestVersion":"15.0.101-preview.10.251","description":".NET SDK Workload for building iOS applications.","workloadId":"ios"}]}
==workloadListJsonOutputEnd==

Neues Verhalten

Ab .NET 9 haben die betroffenen dotnet workload-Befehle eine Ausgabe erzeugt, die der folgenden für den Befehl dotnet workload list --machine-readable ähnelt:

{"installed":["macos","ios"],"updateAvailable":[{"existingManifestVersion":"12.0.101-preview.10.249","availableUpdateManifestVersion":"12.0.101-preview.10.251","description":".NET SDK Workload for building macOS applications.","workloadId":"macos"},{"existingManifestVersion":"15.0.101-preview.9.31","availableUpdateManifestVersion":"15.0.101-preview.10.251","description":".NET SDK Workload for building iOS applications.","workloadId":"ios"}]}

Eingeführt in Version

.NET 9 Preview 1

Typ des Breaking Changes

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Wenn JSON angefordert wird, geben viele CLI-Produkte nur JSON aus. Wir möchten es gleichtun und ebenfalls nur JSON ausgeben. Durch diese Änderung benötigen Kunden, die diese Befehle in ihren Tools verwenden, kein benutzerdefiniertes Parsen. Sie können die Ausgabe dieser Befehle direkt in einen JSON-Parser statt in eine zwischengeschaltete Parsinglogik umleiten.

Wenn Ihr Code vor dem Parsen von JSON nach dem folgenden Start- und Endbegrenzungstext sucht, müssen Sie die Ausgabe nicht mehr nach diesen Begrenzungen durchsuchen. Die Ausgabe dieser Befehle ist stattdessen direkt der JSON-Textkörper.

  • ==workloadListJsonOutputStart==/==workloadListJsonOutputEnd==
  • ==allPackageLinksJsonOutputStart==/==allPackageLinksJsonOutputEnd==
  • ==workloadRollbackDefinitionJsonOutputStart==/==workloadRollbackDefinitionJsonOutputEnd==

Betroffene APIs