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