| File: AspNetCoreReleaseComponent.cs | Web Access |
| Project: src\deployment-tools\src\Microsoft.Deployment.DotNet.Releases\src\Microsoft.Deployment.DotNet.Releases.csproj (Microsoft.Deployment.DotNet.Releases) |
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text.Json; namespace Microsoft.Deployment.DotNet.Releases { /// <summary> /// Describes an ASP.NET Core release. /// </summary> public class AspNetCoreReleaseComponent : ReleaseComponent { /// <summary> /// The versions of the ASP.NET Core Module in this release. /// </summary> public ReadOnlyCollection<Version> AspNetCoreModuleVersions { get; } /// <summary> /// The friendly display name for the component. /// </summary> public override string Name => ReleasesResources.AspNetCoreReleaseName; /// <summary> /// The versions of Visual Studio that includes this runtime. Multiple versions may be listed, e.g. /// "15.9.25, 16.0.16, 16.4.11, 16.6.4" /// </summary> public string VisualStudioVersion { get; } /// <summary> /// Creates a new <see cref="AspNetCoreReleaseComponent"/> instance. /// </summary> /// <param name="element">The JSON element of the component.</param> /// <param name="release">The release to which the component belongs.</param> internal AspNetCoreReleaseComponent(JsonElement element, ProductRelease release) : base(element, release) { List<Version> ancmVersions = new(); if (element.TryGetProperty("version-aspnetcoremodule", out JsonElement ancmVersionValue) && ancmVersionValue.ValueKind != JsonValueKind.Null) { var enumerator = ancmVersionValue.EnumerateArray(); while (enumerator.MoveNext()) { if (System.Version.TryParse(enumerator.Current.GetString(), out Version version)) { ancmVersions.Add(version); } } } AspNetCoreModuleVersions = new ReadOnlyCollection<Version>(ancmVersions); VisualStudioVersion = element.GetStringOrDefault("vs-version"); } } }