Skip to content

Commit ca5f4da

Browse files
authored
Handle bad upgrade state without blocking the SDK (#46540)
2 parents e78c097 + adadcc2 commit ca5f4da

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

src/Cli/dotnet/commands/InstallingWorkloadCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ private IEnumerable<ManifestVersionUpdate> InstallWorkloadSet(ITransactionContex
254254
PrintWorkloadSetTransition(workloadSetVersion);
255255
var workloadSet = _workloadInstaller.InstallWorkloadSet(context, workloadSetVersion);
256256

257-
return _workloadManifestUpdater.CalculateManifestUpdatesForWorkloadSet(workloadSet);
257+
return workloadSet is null ? Enumerable.Empty<ManifestVersionUpdate>() : _workloadManifestUpdater.CalculateManifestUpdatesForWorkloadSet(workloadSet);
258258
}
259259

260260
private void PrintWorkloadSetTransition(string newVersion)

src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/SdkDirectoryWorkloadManifestProvider.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,11 @@ static void AddWorkloadSetsForFeatureBand(Dictionary<string, WorkloadSet> availa
539539
{
540540
var workloadSetVersion = Path.GetFileName(workloadSetDirectory);
541541
var workloadSet = WorkloadSet.FromWorkloadSetFolder(workloadSetDirectory, workloadSetVersion, featureBand);
542-
availableWorkloadSets[workloadSet.Version!] = workloadSet;
542+
543+
if (workloadSet is not null)
544+
{
545+
availableWorkloadSets[workloadSet.Version!] = workloadSet;
546+
}
543547
}
544548
}
545549
}

src/Resolvers/Microsoft.NET.Sdk.WorkloadManifestReader/WorkloadSet.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public static WorkloadSet FromJson(string json, SdkFeatureBand defaultFeatureBan
8181
#endif
8282
}
8383

84-
public static WorkloadSet FromWorkloadSetFolder(string path, string workloadSetVersion, SdkFeatureBand defaultFeatureBand)
84+
public static WorkloadSet? FromWorkloadSetFolder(string path, string workloadSetVersion, SdkFeatureBand defaultFeatureBand)
8585
{
8686
WorkloadSet? workloadSet = null;
8787
foreach (var jsonFile in Directory.GetFiles(path, "*.workloadset.json"))
@@ -107,7 +107,7 @@ public static WorkloadSet FromWorkloadSetFolder(string path, string workloadSetV
107107

108108
if (workloadSet == null)
109109
{
110-
throw new InvalidOperationException("No workload set information found in: " + path);
110+
return null;
111111
}
112112

113113
if (File.Exists(Path.Combine(path, "baseline.workloadset.json")))

0 commit comments

Comments
 (0)