| File: def\IFrameworkMappings.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.Frameworks\NuGet.Frameworks.csproj (NuGet.Frameworks) |
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; namespace NuGet.Frameworks { /// <summary> /// A raw list of framework mappings. These are indexed by the framework name provider and in most cases all /// mappings are /// mirrored so that the IFrameworkMappings implementation only needs to provide the minimum amount of /// mappings. /// </summary> public interface IFrameworkMappings { /// <summary> /// Synonym ‒> Identifier /// Ex: NET Framework ‒> .NET Framework /// </summary> IEnumerable<KeyValuePair<string, string>> IdentifierSynonyms { get; } /// <summary> /// Ex: .NET Framework ‒> net /// </summary> IEnumerable<KeyValuePair<string, string>> IdentifierShortNames { get; } /// <summary> /// Ex: WindowsPhone ‒> wp /// </summary> IEnumerable<FrameworkSpecificMapping> ProfileShortNames { get; } /// <summary> /// Equal frameworks. Used for legacy conversions. /// ex: Framework: Win8 <‒> Framework: NetCore45 Platform: Win8 /// </summary> IEnumerable<KeyValuePair<NuGetFramework, NuGetFramework>> EquivalentFrameworks { get; } /// <summary> /// Framework, EquivalentProfile1, EquivalentProfile2 /// Ex: Silverlight, WindowsPhone71, WindowsPhone /// </summary> IEnumerable<FrameworkSpecificMapping> EquivalentProfiles { get; } /// <summary> /// Frameworks which are subsets of others. /// Ex: .NETCore ‒> .NET /// Everything in .NETCore maps to .NET and is one way compatible. Version numbers follow the same format. /// </summary> IEnumerable<KeyValuePair<string, string>> SubSetFrameworks { get; } /// <summary> /// Additional framework compatibility rules beyond name and version matching. /// Ex: .NETFramework supports ‒> Native /// </summary> IEnumerable<OneWayCompatibilityMappingEntry> CompatibilityMappings { get; } /// <summary> /// Ordered list of framework identifiers. The first framework in the list will be preferred over other /// framework identifiers. This is enable better tie breaking in scenarios where legacy frameworks are /// equivalently compatible to a new framework. /// Example: UAP10.0 ‒> win81, wpa81 /// </summary> IEnumerable<string> NonPackageBasedFrameworkPrecedence { get; } /// <summary> /// Same as <see cref="NonPackageBasedFrameworkPrecedence"/> but is only referred to if all of the packages /// in consideration are package based (determined by <see cref="NuGetFramework.IsPackageBased"/>). /// </summary> IEnumerable<string> PackageBasedFrameworkPrecedence { get; } /// <summary> /// Only used to choose between frameworks that are equivalent. This favors more human-readable target /// frameworks identifiers. /// </summary> IEnumerable<string> EquivalentFrameworkPrecedence { get; } /// <summary> /// Rewrite folder short names to the given value. /// Ex: dotnet50 ‒> dotnet /// </summary> IEnumerable<KeyValuePair<NuGetFramework, NuGetFramework>> ShortNameReplacements { get; } /// <summary> /// Rewrite full framework names to the given value. /// Ex: .NETPlatform,Version=v0.0 ‒> .NETPlatform,Version=v5.0 /// </summary> IEnumerable<KeyValuePair<NuGetFramework, NuGetFramework>> FullNameReplacements { get; } } }