| File: PublishMutationUtilities.cs | Web Access |
| Project: src\sdk\src\Tasks\sdk-tasks\sdk-tasks.csproj (sdk-tasks) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. #nullable disable using System.Text.Json; using System.Text.Json.Nodes; namespace Microsoft.DotNet.Build.Tasks { public class PublishMutationUtilities { private static readonly JsonSerializerOptions s_writeOptions = new() { WriteIndented = true }; public static void ChangeEntryPointLibraryName(string depsFile, string newName) { var deps = JsonNode.Parse(File.ReadAllText(depsFile)); string version = null; foreach (var target in deps["targets"]!.AsObject()) { var targetObj = target.Value!.AsObject(); var targetLibrary = targetObj.FirstOrDefault(); if (targetLibrary.Key == null) { continue; } version = targetLibrary.Key.Substring(targetLibrary.Key.IndexOf('/') + 1); var targetLibraryValue = targetLibrary.Value; targetObj.Remove(targetLibrary.Key); if (newName != null) { targetObj.Add(newName + '/' + version, targetLibraryValue); } } if (version != null) { var librariesObj = deps["libraries"]!.AsObject(); var library = librariesObj.First(); var libraryValue = library.Value; librariesObj.Remove(library.Key); if (newName != null) { librariesObj.Add(newName + '/' + version, libraryValue); } File.WriteAllText(depsFile, deps.ToJsonString(s_writeOptions)); } } } }