<?xml version="1.0"?>
<doc>
    <assembly>
        <name>NuGet.Frameworks</name>
    </assembly>
    <members>
        <member name="T:NuGet.Frameworks.AssetTargetFallbackFramework">
            <summary>
            AssetTargetFallbackFramework only fallback when zero assets are selected. These do not 
            auto fallback during GetNearest as FallbackFramework would.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.AssetTargetFallbackFramework.Fallback">
            <summary>
            List framework to fall back to.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.AssetTargetFallbackFramework.RootFramework">
            <summary>
            Root project framework.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.AssetTargetFallbackFramework.AsFallbackFramework">
            <summary>
            Create a FallbackFramework from the current AssetTargetFallbackFramework.
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.FrameworkPrecedenceSorter">
            <summary>
            Sorts frameworks according to the framework mappings
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.NuGetFrameworkFullComparer">
            <summary>
            A case insensitive compare of the framework, version, and profile
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.NuGetFrameworkNameComparer">
            <summary>
            A case insensitive compare of the framework name only
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.NuGetFrameworkSorter">
            <summary>
            Sorts NuGet Frameworks in a consistent way for package readers.
            The order is not particularly useful here beyond making things deterministic
            since it compares completely different frameworks.
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.CompatibilityCacheKey">
            <summary>
            Internal cache key used to store framework compatibility.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.CompatibilityProvider.IsCompatible(NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.NuGetFramework)">
            <summary>
            Check if the frameworks are compatible.
            </summary>
            <param name="target">Project framework</param>
            <param name="candidate">Other framework to check against the project framework</param>
            <returns>True if framework supports other</returns>
        </member>
        <member name="M:NuGet.Frameworks.CompatibilityProvider.IsCompatibleCore(NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.NuGetFramework)">
            <summary>
            Actual compatibility check without caching
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.CompatibilityProvider.GetEquivalentFrameworksClosure(NuGet.Frameworks.NuGetFramework)">
            <summary>
            Find all equivalent frameworks, and their equivalent frameworks.
            Example:
            Mappings:
            A &lt;&#8210;&gt; B
            B &lt;&#8210;&gt; C
            C &lt;&#8210;&gt; D
            For A we need to find B, C, and D so we must retrieve equivalent frameworks for A, B, and C
            also as we discover them.
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.CompatibilityTable">
            <summary>
            Creates a table of compatible frameworks.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.CompatibilityTable.HasFramework(NuGet.Frameworks.NuGetFramework)">
            <summary>
            True if the framework is in the table.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.CompatibilityTable.GetNearest(NuGet.Frameworks.NuGetFramework)">
            <summary>
            Gives the smallest set of frameworks from the table that cover everything the given framework would cover.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.CompatibilityTable.TryGetCompatible(NuGet.Frameworks.NuGetFramework,System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework}@)">
            <summary>
            Returns the list of all frameworks compatible with the given framework
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.DefaultFrameworkMappings.Instance">
            <summary>
            Singleton instance of the default framework mappings.
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.DefaultPortableFrameworkMappings">
            <summary>
            Contains the standard portable framework mappings
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.DefaultPortableFrameworkMappings.Instance">
            <summary>
            Static instance of the portable framework mappings
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkCompatibilityListProvider.GetFrameworksSupporting(NuGet.Frameworks.NuGetFramework)">
            <summary>
            Get a list of frameworks supporting the provided framework. This list
            is not meant to be exhaustive but is instead meant to be human-readable.
            Ex: netstandard1.5 -> netstandardapp1.5, net462, dnxcore50, ...
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkCompatibilityProvider.IsCompatible(NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.NuGetFramework)">
            <summary>
            Ex: IsCompatible(net45, net40) -> true
            Ex: IsCompatible(net40, net45) -> false
            </summary>
            <param name="framework">Project target framework</param>
            <param name="other">Library framework that is going to be installed</param>
            <returns>True if framework supports other</returns>
        </member>
        <member name="T:NuGet.Frameworks.IFrameworkMappings">
            <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>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.IdentifierSynonyms">
            <summary>
            Synonym &#8210;&gt; Identifier
            Ex: NET Framework &#8210;&gt; .NET Framework
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.IdentifierShortNames">
            <summary>
            Ex: .NET Framework &#8210;&gt; net
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.ProfileShortNames">
            <summary>
            Ex: WindowsPhone &#8210;&gt; wp
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.EquivalentFrameworks">
            <summary>
            Equal frameworks. Used for legacy conversions.
            ex: Framework: Win8 &lt;&#8210;&gt; Framework: NetCore45 Platform: Win8
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.EquivalentProfiles">
            <summary>
            Framework, EquivalentProfile1, EquivalentProfile2
            Ex: Silverlight, WindowsPhone71, WindowsPhone
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.SubSetFrameworks">
            <summary>
            Frameworks which are subsets of others.
            Ex: .NETCore &#8210;&gt; .NET
            Everything in .NETCore maps to .NET and is one way compatible. Version numbers follow the same format.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.CompatibilityMappings">
            <summary>
            Additional framework compatibility rules beyond name and version matching.
            Ex: .NETFramework supports &#8210;&gt; Native
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.NonPackageBasedFrameworkPrecedence">
            <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 &#8210;&gt; win81, wpa81
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.PackageBasedFrameworkPrecedence">
            <summary>
            Same as <see cref="P:NuGet.Frameworks.IFrameworkMappings.NonPackageBasedFrameworkPrecedence"/> but is only referred to if all of the packages
            in consideration are package based (determined by <see cref="P:NuGet.Frameworks.NuGetFramework.IsPackageBased"/>).
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.EquivalentFrameworkPrecedence">
            <summary>
            Only used to choose between frameworks that are equivalent. This favors more human-readable target
            frameworks identifiers.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.ShortNameReplacements">
            <summary>
            Rewrite folder short names to the given value.
            Ex: dotnet50 &#8210;&gt; dotnet
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkMappings.FullNameReplacements">
            <summary>
            Rewrite full framework names to the given value.
            Ex: .NETPlatform,Version=v0.0 &#8210;&gt; .NETPlatform,Version=v5.0
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetIdentifier(System.String,System.String@)">
            <summary>
            Returns the official framework identifier for an alias or short name.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetShortIdentifier(System.String,System.String@)">
            <summary>
            Gives the short name used for folders in NuGet
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetProfile(System.String,System.String,System.String@)">
            <summary>
            Get the official profile name from the short name.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetShortProfile(System.String,System.String,System.String@)">
            <summary>
            Returns the shortened version of the profile name.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetVersion(System.String,System.Version@)">
            <summary>
            Parses a version string using single digit rules if no dots exist
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetPlatformVersion(System.String,System.Version@)">
            <summary>
            Parses a version string. If no dots exist, all digits are treated
            as semver-major, instead of inserting dots.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.GetVersionString(System.String,System.Version)">
            <summary>
            Returns a shortened version. If all digits are single digits no dots will be used.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetPortableProfileNumber(System.String,System.Int32@)">
            <summary>
            Tries to parse the portable profile number out of a profile.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetPortableProfile(System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework},System.Int32@)">
            <summary>
            Looks up the portable profile number based on the framework list.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetPortableFrameworks(System.Int32,System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework}@)">
            <summary>
            Returns the frameworks based on a portable profile number.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetPortableFrameworks(System.Int32,System.Boolean,System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework}@)">
            <summary>
            Returns the frameworks based on a portable profile number.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetPortableFrameworks(System.String,System.Boolean,System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework}@)">
            <summary>
            Returns the frameworks based on a profile string.
            Profile can be either the number in format: Profile=7, or the shortened NuGet version: net45+win8
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetPortableFrameworks(System.String,System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework}@)">
            <summary>
            Parses a shortened portable framework profile list.
            Ex: net45+win8
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetPortableCompatibilityMappings(System.Int32,System.Collections.Generic.IEnumerable{NuGet.Frameworks.FrameworkRange}@)">
            <summary>
            Returns ranges of frameworks that are known to be supported by the given portable profile number.
            Ex: Profile7 -> netstandard1.1
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetEquivalentFrameworks(NuGet.Frameworks.NuGetFramework,System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework}@)">
            <summary>
            Returns a list of all possible substitutions where the framework name
            have equivalents.
            Ex: sl3 -> wp8
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetEquivalentFrameworks(NuGet.Frameworks.FrameworkRange,System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework}@)">
            <summary>
            Gives all substitutions for a framework range.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetCompatibilityMappings(NuGet.Frameworks.NuGetFramework,System.Collections.Generic.IEnumerable{NuGet.Frameworks.FrameworkRange}@)">
            <summary>
            Returns ranges of frameworks that are known to be supported by the given framework.
            Ex: net45 -> native
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetSubSetFrameworks(System.String,System.Collections.Generic.IEnumerable{System.String}@)">
            <summary>
            Returns all sub sets of the given framework.
            Ex: .NETFramework -> .NETCore
            These will have the same version, but a different framework
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.CompareFrameworks(NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.NuGetFramework)">
            <summary>
            The ascending order of frameworks should be based on the following ordered groups:
            
            1. Non-package-based frameworks in <see cref="P:NuGet.Frameworks.IFrameworkMappings.NonPackageBasedFrameworkPrecedence"/>.
            2. Other non-package-based frameworks.
            3. Package-based frameworks in <see cref="P:NuGet.Frameworks.IFrameworkMappings.PackageBasedFrameworkPrecedence"/>.
            4. Other package-based frameworks.
            
            For group #1 and #3, the order within the group is based on the order of the respective precedence list.
            For group #2 and #4, the order is the original order in the incoming list. This should later be made
            consistent between different input orderings by using the <see cref="T:NuGet.Frameworks.NuGetFrameworkSorter"/>.
            </summary>
            <remarks>netcore50 is a special case since netcore451 is not packages based, but netcore50 is.
            This sort will treat all versions of netcore as non-packages based.</remarks>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.CompareEquivalentFrameworks(NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.NuGetFramework)">
            <summary>
            Used to pick between two equivalent frameworks. This is meant to favor the more human-readable
            framework. Note that this comparison does not validate that the provided frameworks are indeed
            equivalent (e.g. with
            <see cref="M:NuGet.Frameworks.IFrameworkNameProvider.TryGetEquivalentFrameworks(NuGet.Frameworks.NuGetFramework,System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework}@)"/>).
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.GetShortNameReplacement(NuGet.Frameworks.NuGetFramework)">
            <summary>
            Returns folder short names rewrites.
            Ex: dotnet50 -> dotnet
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.GetFullNameReplacement(NuGet.Frameworks.NuGetFramework)">
            <summary>
            Returns full name rewrites.
            Ex: .NETPlatform,Version=v0.0 -> .NETPlatform,Version=v5.0
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.GetNetStandardVersions">
            <summary>
            Returns all versions of .NETStandard in ascending order.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.IFrameworkNameProvider.GetCompatibleCandidates">
            <summary>
            Returns a list of frameworks that could be compatible with .NETStandard.
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.IFrameworkSpecific">
            <summary>
            A group or object that is specific to a single target framework
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IFrameworkSpecific.TargetFramework">
            <summary>
            Target framework
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IPortableFrameworkMappings.ProfileFrameworks">
            <summary>
            Ex: 5 -> net4, win8
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IPortableFrameworkMappings.ProfileOptionalFrameworks">
            <summary>
            Additional optional frameworks supported in a portable profile.
            Ex: 5 -> MonoAndroid1+MonoTouch1
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.IPortableFrameworkMappings.CompatibilityMappings">
            <summary>
            Compatibility mapping for portable profiles. This is a separate compatibility from that in
            <see cref="P:NuGet.Frameworks.IFrameworkMappings.CompatibilityMappings"/>.
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.DualCompatibilityFramework">
            <summary>
            Represents a framework that behaves as 2 potentially independent frameworks.
            Ex. C++/CLI can support both .NET 5.0 and native.
            This type is immutable.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.DualCompatibilityFramework.RootFramework">
            <summary>
            The root framework. Any compatibility checks should be performed against this framework first.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.DualCompatibilityFramework.SecondaryFramework">
            <summary>
            The secondary framework. If the root framework compatibility checks fail, then the compat checks should be performed against this framework next.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.DualCompatibilityFramework.#ctor(NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.NuGetFramework)">
            <summary>
            Multiple compatbility 
            </summary>
            <param name="framework">Root framework. Never <see langword="null"/>. </param>
            <param name="secondaryFramework">Secondary framework. Never <see langword="null"/>. </param>
            <exception cref="T:System.ArgumentNullException">if either <paramref name="framework"/> or <paramref name="secondaryFramework"/> are <see langword="null"/>.</exception>
        </member>
        <member name="M:NuGet.Frameworks.DualCompatibilityFramework.AsFallbackFramework">
            <summary>
            Create a FallbackFramework from the current DualCompatibilityFramework.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.FallbackFramework.Fallback">
            <summary>
            List framework to fall back to.
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.FrameworkConstants.CommonFrameworks">
            <summary>
            Interned frameworks that are commonly used in NuGet
            </summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net11">
            <summary>net11 (.NETFramework,Version=v1.1)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net2">
            <summary>net20 (.NETFramework,Version=v2.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net35">
            <summary>net35 (.NETFramework,Version=v3.5)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net4">
            <summary>net40 (.NETFramework,Version=v4.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net403">
            <summary>net403 (.NETFramework,Version=v4.0.3)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net45">
            <summary>net45 (.NETFramework,Version=v4.5)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net451">
            <summary>net451 (.NETFramework,Version=v4.5.1)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net452">
            <summary>net452 (.NETFramework,Version=v4.5.2)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net46">
            <summary>net46 (.NETFramework,Version=v4.6)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net461">
            <summary>net461 (.NETFramework,Version=v4.6.1)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net462">
            <summary>net462 (.NETFramework,Version=v4.6.2)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net463">
            <summary>net463 (.NETFramework,Version=v4.6.3)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net47">
            <summary>net47 (.NETFramework,Version=v4.7)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net471">
            <summary>net471 (.NETFramework,Version=v4.7.1)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net472">
            <summary>net472 (.NETFramework,Version=v4.7.2)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net48">
            <summary>net48 (.NETFramework,Version=v4.8)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net481">
            <summary>net481 (.NETFramework,Version=v4.8.1)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetCore45">
            <summary>netcore45 (.NETCore,Version=v4.5)</summary>
            <remarks>This is not .NET Core. You are probably looking for netcoreapp.</remarks>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetCore451">
            <summary>netcore451 (.NETCore,Version=v4.5.1)</summary>
            <remarks>This is not .NET Core. You are probably looking for netcoreapp.</remarks>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetCore50">
            <summary>netcore50 (.NETCore,Version=v5.0)</summary>
            <remarks>This is not .NET 5. You are probably looking for net50 (.NETCoreApp,Version=v5.0)</remarks>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetStandard10">
            <summary>netstandard1.0 (.NETStandard,Version=v1.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetStandard11">
            <summary>netstandard1.1 (.NETStandard,Version=v1.1)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetStandard12">
            <summary>netstandard1.2 (.NETStandard,Version=v1.2)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetStandard13">
            <summary>netstandard1.3 (.NETStandard,Version=v1.3)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetStandard14">
            <summary>netstandard1.4 (.NETStandard,Version=v1.4)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetStandard15">
            <summary>netstandard1.5 (.NETStandard,Version=v1.5)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetStandard16">
            <summary>netstandard1.6 (.NETStandard,Version=v1.6)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetStandard17">
            <summary>netstandard1.7 (.NETStandard,Version=v1.7</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetStandard20">
            <summary>netstandard2.0 (.NETStandard,Version=v2.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetStandard21">
            <summary>netstandard2.1 (.NETStandard,Version=v2.1)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetCoreApp10">
            <summary>netcoreapp1.0 (.NETCoreApp,Version=v1.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetCoreApp11">
            <summary>netcoreapp1.1 (.NETCoreApp,Version=v1.1)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetCoreApp20">
            <summary>netcoreapp2.0 (.NETCoreApp,Version=v2.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetCoreApp21">
            <summary>netcoreapp2.1 (.NETCoreApp,Version=v2.1)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetCoreApp22">
            <summary>netcoreapp2.2 (.NETCoreApp,Version=v2.2)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetCoreApp30">
            <summary>netcoreapp3.0 (.NETCoreApp,Version=v3.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.NetCoreApp31">
            <summary>netcoreapp3.1 (.NETCoreApp,Version=v3.1)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net50">
            <summary>net5.0 (.NETCoreApp,Version=v5.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net60">
            <summary>net6.0 (.NETCoreApp,Version=v6.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net70">
            <summary>net7.0 (.NETCoreApp,Version=v7.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net80">
            <summary>net8.0 (.NETCoreApp,Version=v8.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net90">
            <summary>net9.0 (.NETCoreApp,Version=v9.0)</summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkConstants.CommonFrameworks.Net10_0">
            <summary>net10.0 (.NETCoreApp,Version=v10.0)</summary>
        </member>
        <member name="T:NuGet.Frameworks.FrameworkExpander">
            <summary>
            FrameworkExpander finds all equivalent and compatible frameworks for a NuGetFramework
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkExpander.Expand(NuGet.Frameworks.NuGetFramework)">
            <summary>
            Return all possible equivalent, subset, and known compatible frameworks.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkExpander.ExpandInternal(NuGet.Frameworks.NuGetFramework)">
            <summary>
            Finds all expansions using the mapping provider
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFrameworkExtensions.IsDesktop(NuGet.Frameworks.NuGetFramework)">
            <summary>
            True if the Framework is .NETFramework
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFrameworkExtensions.GetNearest``1(System.Collections.Generic.IEnumerable{``0},NuGet.Frameworks.NuGetFramework)">
            <summary>
            Return the item with the target framework nearest the project framework
            </summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkNameProvider.SingleDigitVersionFrameworks">
            <summary>
            Legacy frameworks that are allowed to have a single digit for the version number.
            </summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkNameProvider.DecimalPointFrameworks">
            <summary>
            Frameworks that must always include a decimal point (period) between numerical parts.
            </summary>
        </member>
        <member name="F:NuGet.Frameworks.FrameworkNameProvider._identifierSynonyms">
            <summary>
            Contains identifier -> identifier
            Ex: .NET Framework -> .NET Framework
            Ex: NET Framework -> .NET Framework
            This includes self mappings.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkNameProvider.TryConvertOrNormalize(System.String,System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IDictionary{System.String,System.String},System.String@)">
            <summary>
            Converts a key using the mappings, or if the key is already converted, finds the normalized form.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkNameProvider.GetAllEquivalentFrameworks(NuGet.Frameworks.NuGetFramework)">
            <summary>  
            Get all equivalent frameworks including the given framework  
            </summary>  
        </member>
        <member name="M:NuGet.Frameworks.FrameworkNameProvider.AddEquivalentProfiles(System.Collections.Generic.IEnumerable{NuGet.Frameworks.FrameworkSpecificMapping})">
            <summary>
            2 way per framework profile equivalence
            </summary>
            <param name="mappings"></param>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkNameProvider.AddEquivalentFrameworks(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.NuGetFramework}})">
            <summary>
            2 way framework equivalence
            </summary>
            <param name="mappings"></param>
        </member>
        <member name="T:NuGet.Frameworks.FrameworkRange">
            <summary>
            An inclusive range of frameworks
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.FrameworkRange.Min">
            <summary>
            Minimum Framework
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.FrameworkRange.Max">
            <summary>
            Maximum Framework
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.FrameworkRange.IncludeMin">
            <summary>
            Minimum version inclusiveness.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.FrameworkRange.IncludeMax">
            <summary>
            Maximum version inclusiveness.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.FrameworkRange.FrameworkIdentifier">
            <summary>
            Framework Identifier of both the Min and Max
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkRange.Satisfies(NuGet.Frameworks.NuGetFramework)">
            <summary>
            True if the framework version falls between the min and max
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.FrameworkReducer">
            <summary>
            Reduces a list of frameworks into the smallest set of frameworks required.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkReducer.#ctor">
            <summary>
            Creates a FrameworkReducer using the default framework mappings.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkReducer.#ctor(NuGet.Frameworks.IFrameworkNameProvider,NuGet.Frameworks.IFrameworkCompatibilityProvider)">
            <summary>
            Creates a FrameworkReducer using custom framework mappings.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkReducer.GetNearest(NuGet.Frameworks.NuGetFramework,System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework})">
            <summary>
            Returns the nearest matching framework that is compatible.
            </summary>
            <param name="framework">Project target framework</param>
            <param name="possibleFrameworks">Possible frameworks to narrow down</param>
            <returns>Nearest compatible framework. If no frameworks are compatible null is returned.</returns>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkReducer.ReduceEquivalent(System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework})">
            <summary>
            Remove duplicates found in the equivalence mappings.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkReducer.ReduceUpwards(System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework})">
            <summary>
            Reduce to the highest framework
            Ex: net45, net403, net40 -> net45
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkReducer.ReduceDownwards(System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework})">
            <summary>
            Reduce to the lowest framework
            Ex: net45, net403, net40 -> net40
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkReducer.ExplodePortableFrameworks(System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework})">
            <summary>
            Create lookup of the given PCLs to their actual frameworks
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkReducer.ExplodePortableFramework(NuGet.Frameworks.NuGetFramework,System.Boolean)">
            <summary>
            portable-net45+win8 -> net45, win8
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkReducer.GetBestPCL(System.Collections.Generic.IEnumerable{NuGet.Frameworks.NuGetFramework})">
            <summary>
            Order PCLs when there is no other way to decide.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.FrameworkReducer.IsBetterPCL(NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.NuGetFramework)">
            <summary>
            Sort PCLs using these criteria
            1. Lowest number of frameworks (highest surface area) wins first
            2. Profile with the highest version numbers wins next
            3. String compare is used as a last resort
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.FrameworkRuntimePair">
            <remarks>
            Immutable.
            </remarks>
        </member>
        <member name="T:NuGet.Frameworks.FrameworkSpecificMapping">
            <summary>
            A keyvalue pair specific to a framework identifier
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.NuGetFramework">
            <summary>
            A portable implementation of the .NET FrameworkName type with added support for NuGet folder names.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.#ctor(System.String,System.Version,System.String)">
            <summary>
            Creates a new NuGetFramework instance, with an optional profile (only available for netframework)
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.#ctor(System.String,System.Version,System.String,System.Version)">
            <summary>
            Creates a new NuGetFramework instance, with an optional platform and platformVersion (only available for net5.0+)
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.Framework">
            <summary>
            Target framework
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.Version">
            <summary>
            Target framework version
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.Platform">
            <summary>
            Framework Platform (net5.0+)
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.PlatformVersion">
            <summary>
            Framework Platform Version (net5.0+)
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.HasPlatform">
            <summary>
            True if the platform is non-empty
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.HasProfile">
            <summary>
            True if the profile is non-empty
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.Profile">
            <summary>
            Target framework profile
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.DotNetFrameworkName">
            <summary>The TargetFrameworkMoniker identifier of the current NuGetFramework.</summary>
            <remarks>Formatted to a System.Versioning.FrameworkName</remarks>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.GetDotNetFrameworkName(NuGet.Frameworks.IFrameworkNameProvider)">
            <summary>The TargetFrameworkMoniker identifier of the current NuGetFramework.</summary>
            <remarks>Formatted to a System.Versioning.FrameworkName</remarks>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.DotNetPlatformName">
            <summary>The TargetPlatformMoniker identifier of the current NuGetFramework.</summary>
            <remarks>Similar to a System.Versioning.FrameworkName, but missing the v at the beginning of the version.</remarks>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.GetShortFolderName">
            <summary>
            Creates the shortened version of the framework using the default mappings.
            Ex: net45
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.GetFrameworkIdentifier">
            <summary>
            Helper that is .NET 5 Era aware to replace identifier when appropriate
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.GetShortFolderName(NuGet.Frameworks.IFrameworkNameProvider)">
            <summary>
            Creates the shortened version of the framework using the given mappings.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.IsPCL">
            <summary>
            Portable class library check
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.IsPackageBased">
            <summary>
            True if the framework is packages based.
            Ex: dotnet, dnxcore, netcoreapp, netstandard, uap, netcore50
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.AllFrameworkVersions">
            <summary>
            True if this framework matches for all versions.
            Ex: net
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.IsUnsupported">
            <summary>
            True if this framework was invalid or unknown. This framework is only compatible with Any and Agnostic.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.IsAgnostic">
            <summary>
            True if this framework is non-specific. Always compatible.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.IsAny">
            <summary>
            True if this is the any framework. Always compatible.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.IsSpecificFramework">
            <summary>
            True if this framework is real and not one of the special identifiers.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.NuGetFramework.IsNet5Era">
            <summary>
            True if this framework is Net5 or later, until we invent something new.
            </summary>
        </member>
        <member name="F:NuGet.Frameworks.NuGetFramework.Comparer">
            <summary>
            Full framework comparison of the identifier, version, profile, platform, and platform version
            </summary>
        </member>
        <member name="F:NuGet.Frameworks.NuGetFramework.FrameworkNameComparer">
            <summary>
            Framework name only comparison.
            </summary>
        </member>
        <member name="F:NuGet.Frameworks.NuGetFramework.PackagesBased">
            <summary>
            Frameworks that are packages based across all versions.
            </summary>
        </member>
        <member name="F:NuGet.Frameworks.NuGetFramework.UnsupportedFramework">
            <summary>
            An unknown or invalid framework
            </summary>
        </member>
        <member name="F:NuGet.Frameworks.NuGetFramework.AgnosticFramework">
            <summary>
            A framework with no specific target framework. This can be used for content only packages.
            </summary>
        </member>
        <member name="F:NuGet.Frameworks.NuGetFramework.AnyFramework">
            <summary>
            A wildcard matching all frameworks
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.Parse(System.String)">
            <summary>
            Creates a NuGetFramework from a folder name using the default mappings.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.Parse(System.String,NuGet.Frameworks.IFrameworkNameProvider)">
            <summary>
            Creates a NuGetFramework from a folder name using the given mappings.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.ParseComponents(System.String,System.String)">
            <summary>
            Creates a NuGetFramework from individual components
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.ParseComponents(System.String,System.String,NuGet.Frameworks.IFrameworkNameProvider)">
            <summary>
            Creates a NuGetFramework from individual components, using the given mappings.
            This method may have individual component preference, as described in the remarks.
            </summary>
            <remarks>
            Profiles and TargetPlatforms can't mix. As such the precedence order is profile over target platforms (TPI, TPV).
            .NETCoreApp,Version=v5.0 and later do not support profiles.
            Target Platforms are ignored for any frameworks not supporting them.
            This allows to handle the old project scenarios where the TargetPlatformIdentifier and TargetPlatformVersion may be set to Windows and v7.0 respectively.
            </remarks>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.ParseFrameworkName(System.String,NuGet.Frameworks.IFrameworkNameProvider)">
            <summary>
            Creates a NuGetFramework from a .NET FrameworkName
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.ParseFolder(System.String)">
            <summary>
            Creates a NuGetFramework from a folder name using the default mappings.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.ParseFolder(System.String,NuGet.Frameworks.IFrameworkNameProvider)">
            <summary>
            Creates a NuGetFramework from a folder name using the given mappings.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.TryParseDeprecatedFramework(System.String,NuGet.Frameworks.NuGetFramework@)">
            <summary>
            Attempt to parse a common but deprecated framework using an exact string match
            Support for these should be dropped as soon as possible.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFramework.TryParseCommonFramework(System.String,NuGet.Frameworks.NuGetFramework@)">
            <summary>
            A set of special and common frameworks that can be returned from the list of constants without parsing
            Using the interned frameworks here optimizes comparisons since they can be checked by reference.
            This is designed to optimize
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFrameworkUtility.GetNearest``1(System.Collections.Generic.IEnumerable{``0},NuGet.Frameworks.NuGetFramework,System.Func{``0,NuGet.Frameworks.NuGetFramework})">
            <summary>
            Find the most compatible group based on target framework
            </summary>
            <param name="items">framework specific groups or items</param>
            <param name="framework">project target framework</param>
            <param name="selector">retrieves the framework from the group</param>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFrameworkUtility.GetNearest``1(System.Collections.Generic.IEnumerable{``0},NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.IFrameworkNameProvider,NuGet.Frameworks.IFrameworkCompatibilityProvider,System.Func{``0,NuGet.Frameworks.NuGetFramework})">
            <summary>
            Find the most compatible group based on target framework
            </summary>
            <param name="items">framework specific groups or items</param>
            <param name="framework">project target framework</param>
            <param name="selector">retrieves the framework from the group</param>
            <param name="frameworkMappings">framework mappings</param>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFrameworkUtility.GetNearest``1(System.Collections.Generic.IEnumerable{``0},NuGet.Frameworks.NuGetFramework)">
            <summary>
            Find the most compatible group based on target framework
            </summary>
            <param name="items">framework specific groups or items</param>
            <param name="framework">project target framework</param>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFrameworkUtility.GetNearest``1(System.Collections.Generic.IEnumerable{``0},NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.IFrameworkNameProvider,NuGet.Frameworks.IFrameworkCompatibilityProvider)">
            <summary>
            Find the most compatible group based on target framework
            </summary>
            <param name="items">framework specific groups or items</param>
            <param name="framework">project target framework</param>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFrameworkUtility.IsCompatibleWithFallbackCheck(NuGet.Frameworks.NuGetFramework,NuGet.Frameworks.NuGetFramework)">
            <summary>
            Check compatibility with additional checks for the fallback framework.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.NuGetFrameworkUtility.IsNetCore50AndUp(NuGet.Frameworks.NuGetFramework)">
            <summary>
            True if the framework is netcore50 or higher. This is where the framework
            becomes packages based.
            </summary>
        </member>
        <member name="M:NuGet.Frameworks.OneWayCompatibilityMappingEntry.#ctor(NuGet.Frameworks.FrameworkRange,NuGet.Frameworks.FrameworkRange)">
            <summary>
            Creates a one way compatibility mapping.
            Ex: net -supports-> native
            </summary>
            <param name="targetFramework">Project framework</param>
            <param name="supportedFramework">Framework that is supported by the project framework</param>
        </member>
        <member name="P:NuGet.Frameworks.OneWayCompatibilityMappingEntry.TargetFrameworkRange">
            <summary>
            Primary framework range or project target framework that supports the SuppportedFrameworkRange
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.OneWayCompatibilityMappingEntry.SupportedFrameworkRange">
            <summary>
            Framework range that is supported by the TargetFrameworkRange
            </summary>
        </member>
        <member name="T:NuGet.Frameworks.Strings">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.Strings.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.Strings.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.Strings.ArgumentCannotBeNullOrEmpty">
            <summary>
              Looks up a localized string similar to The argument cannot be null or empty..
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.Strings.FrameworkDoesNotSupportProfiles">
            <summary>
              Looks up a localized string similar to .NET 5.0 and above does not support profiles..
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.Strings.FrameworkMismatch">
            <summary>
              Looks up a localized string similar to Frameworks must have the same identifier, profile, and platform..
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.Strings.InvalidFrameworkIdentifier">
            <summary>
              Looks up a localized string similar to Invalid framework identifier &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.Strings.InvalidFrameworkVersion">
            <summary>
              Looks up a localized string similar to Invalid framework version &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.Strings.InvalidPlatformVersion">
            <summary>
              Looks up a localized string similar to Invalid platform version &apos;{0}&apos;..
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.Strings.InvalidPortableFrameworksDueToHyphen">
            <summary>
              Looks up a localized string similar to Invalid portable frameworks &apos;{0}&apos;. A hyphen may not be in any of the portable framework names..
            </summary>
        </member>
        <member name="P:NuGet.Frameworks.Strings.MissingPortableFrameworks">
            <summary>
              Looks up a localized string similar to Invalid portable frameworks for &apos;{0}&apos;. A portable framework must have at least one framework in the profile..
            </summary>
        </member>
        <member name="T:NuGet.Shared.HashCodeCombiner">
            <summary>
            Hash code creator, based on the original NuGet hash code combiner/ASP hash code combiner implementations
            </summary>
        </member>
        <member name="M:NuGet.Shared.HashCodeCombiner.GetHashCode``2(``0,``1)">
            <summary>
            Create a unique hash code for the given set of items
            </summary>
        </member>
        <member name="M:NuGet.Shared.HashCodeCombiner.GetHashCode``3(``0,``1,``2)">
            <summary>
            Create a unique hash code for the given set of items
            </summary>
        </member>
        <member name="M:NuGet.Shared.Extensions.AsList``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Return the enumerable as a List of T, copying if required. Optimized for common case where it is an List of T.
            Avoid mutating the return value.
            </summary>
            <remarks>https://aspnetwebstack.codeplex.com/SourceControl/latest#src/Common/CollectionExtensions.cs</remarks>
        </member>
        <member name="M:NuGet.Shared.Extensions.AsHashSet``1(System.Collections.Generic.ISet{``0},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Return the ISet as a HashSet of T, copying if required. Optimized for common case where it is a HashSet of T.
            Avoid mutating the return value.
            </summary>
        </member>
        <member name="M:NuGet.Shared.Extensions.AppendInt(System.Text.StringBuilder,System.Int32)">
             <summary>
             Helper function to append an <see cref="T:System.Int32"/> to a <see cref="T:System.Text.StringBuilder"/>. Calling
             <see cref="M:System.Text.StringBuilder.Append(System.Int32)"/> directly causes an allocation by first converting the
             <see cref="T:System.Int32"/> to a string and then appending that result:
             <code>
             public StringBuilder Append(int value)
             {
                 return Append(value.ToString(CultureInfo.CurrentCulture));
             }
             </code>
            
             Note that this uses the current culture to do the conversion while <see cref="M:NuGet.Shared.Extensions.AppendInt(System.Text.StringBuilder,System.Int32)"/> does
             not do any cultural sensitive conversion.
             </summary>
             <param name="sb">The <see cref="T:System.Text.StringBuilder"/> to append to.</param>
             <param name="value">The <see cref="T:System.Int32"/> to append.</param>
        </member>
        <member name="M:NuGet.NoAllocEnumerateExtensions.NoAllocEnumerate``1(System.Collections.Generic.IList{``0})">
             <summary>
             Avoids allocating an enumerator when enumerating an <see cref="T:System.Collections.Generic.IList`1"/>.
             </summary>
             <remarks>
             <para>
             Returns a struct-based enumerator that avoids heap allocation during enumeration.
             If the underlying type is <see cref="T:System.Collections.Generic.List`1"/> then this method will delegate to <see cref="T:System.Collections.Generic.List`1.Enumerator"/>,
             otherwise the collection's items are accessed by index via <see cref="T:System.Collections.Generic.IList`1"/>'s indexer directly.
             </para>
             <para>
             When using a struct-based enumerator, no heap allocation occurs during enumeration via <see langword="foreach" />.
             This is in contrast to the interface-based enumerator <see cref="T:System.Collections.Generic.IEnumerator`1"/> which will
             always be allocated on the heap.
             </para>
             </remarks>
             <example>
             <code>
             <![CDATA[IList<string> list = ...;
            
             foreach (string item in list.NoAllocEnumerate())
             {
                 // ...
             }]]>
             </code>
             </example>
        </member>
        <member name="T:NuGet.NoAllocEnumerateExtensions.OptimisticallyNonAllocatingListEnumerable`1">
            <summary>
            Provides a struct-based enumerator for use with <see cref="T:System.Collections.Generic.IList`1"/>.
            Do not use this type directly. Use <see cref="M:NuGet.NoAllocEnumerateExtensions.NoAllocEnumerate``1(System.Collections.Generic.IList{``0})"/> instead.
            </summary>
        </member>
        <member name="T:NuGet.NoAllocEnumerateExtensions.OptimisticallyNonAllocatingListEnumerable`1.Enumerator">
            <summary>
            A struct-based enumerator for use with <see cref="T:System.Collections.Generic.IList`1"/>.
            Do not use this type directly. Use <see cref="M:NuGet.NoAllocEnumerateExtensions.NoAllocEnumerate``1(System.Collections.Generic.IList{``0})"/> instead.
            </summary>
        </member>
        <member name="M:NuGet.NoAllocEnumerateExtensions.NoAllocEnumerate``1(System.Collections.Generic.IEnumerable{``0})">
             <summary>
             Avoids allocating an enumerator when enumerating an <see cref="T:System.Collections.Generic.IEnumerable`1"/> where the concrete type
             has a well known struct enumerator, such as for <see cref="T:System.Collections.Generic.List`1"/>, or when index-based access is possible via
             <see cref="T:System.Collections.Generic.IList`1"/>.
             </summary>
             <remarks>
             <para>
             Several collection types (e.g. <see cref="T:System.Collections.Generic.List`1"/>) provide a struct-based enumerator type
             (e.g. <see cref="T:System.Collections.Generic.List`1.Enumerator"/>) which the compiler can use in <see langword="foreach" /> statements.
             When using a struct-based enumerator, no heap allocation occurs during such enumeration.
             This is in contrast to the interface-based enumerator <see cref="T:System.Collections.Generic.IEnumerator`1"/> which will
             always be allocated on the heap.
             </para>
             <para>
             This method returns a custom struct enumerator that will avoid any heap allocation if <paramref name="source"/>
             (which is declared via interface <see cref="T:System.Collections.Generic.IEnumerable`1"/>) is actually of known concrete type that
             provides its own struct enumerator. If so, it delegates to that type's enumerator without any boxing
             or other heap allocation.
             </para>
             <para>
             If <paramref name="source"/> is not of a known concrete type, the returned enumerator falls back to the
             interface-based enumerator, which will be allocated on the heap. Benchmarking shows the overhead in
             such cases is low enough to be within the measurement error, meaning this is an inexpensive optimization
             that won't regress behavior and with low downside for cases where it cannot apply an optimization.
             </para>
             </remarks>
             <example>
             <code>
             <![CDATA[IEnumerable<string> source = ...;
            
             foreach (string item in source.NoAllocEnumerate())
             {
                 // ...
             }]]>
             </code>
             </example>
        </member>
        <member name="T:NuGet.NoAllocEnumerateExtensions.OptimisticallyNonAllocatingEnumerable`1">
            <summary>
            Provides a struct-based enumerator for use with <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Do not use this type directly. Use <see cref="M:NuGet.NoAllocEnumerateExtensions.NoAllocEnumerate``1(System.Collections.Generic.IEnumerable{``0})"/> instead.
            </summary>
        </member>
        <member name="T:NuGet.NoAllocEnumerateExtensions.OptimisticallyNonAllocatingEnumerable`1.Enumerator">
            <summary>
            A struct-based enumerator for use with <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Do not use this type directly. Use <see cref="M:NuGet.NoAllocEnumerateExtensions.NoAllocEnumerate``1(System.Collections.Generic.IEnumerable{``0})"/> instead.
            </summary>
        </member>
        <member name="M:NuGet.NoAllocEnumerateExtensions.NoAllocEnumerate``2(System.Collections.Generic.IDictionary{``0,``1})">
             <summary>
             Avoids allocating an enumerator when enumerating an <see cref="T:System.Collections.Generic.IDictionary`2"/> where the concrete type
             has a well known struct enumerator, such as for <see cref="T:System.Collections.Generic.Dictionary`2"/>.
             </summary>
             <remarks>
             <para>
             Several collection types (e.g. <see cref="T:System.Collections.Generic.Dictionary`2"/>) provide a struct-based enumerator type
             (e.g. <see cref="T:System.Collections.Generic.Dictionary`2.Enumerator"/>) which the compiler can use in <see langword="foreach" /> statements.
             When using a struct-based enumerator, no heap allocation occurs during such enumeration.
             This is in contrast to the interface-based enumerator <see cref="T:System.Collections.Generic.IEnumerator`1"/> which will
             always be allocated on the heap.
             </para>
             <para>
             This method returns a custom struct enumerator that will avoid any heap allocation if <paramref name="dictionary"/>
             (which is declared via interface <see cref="T:System.Collections.Generic.IEnumerable`1"/>) is actually of known concrete type that
             provides its own struct enumerator. If so, it delegates to that type's enumerator without any boxing
             or other heap allocation.
             </para>
             <para>
             If <paramref name="dictionary"/> is not of a known concrete type, the returned enumerator falls back to the
             interface-based enumerator, which will be allocated on the heap. Benchmarking shows the overhead in
             such cases is low enough to be within the measurement error, meaning this is an inexpensive optimization
             that won't regress behavior and with low downside for cases where it cannot apply an optimization.
             </para>
             </remarks>
             <example>
             <code>
             <![CDATA[IDictionary<string, string> dictionary = ...;
            
             foreach ((string key, string value) in dictionary.NoAllocEnumerate())
             {
                 // ...
             }]]>
             </code>
             </example>
        </member>
        <member name="T:NuGet.NoAllocEnumerateExtensions.OptimisticallyNonAllocatingDictionaryEnumerable`2">
            <summary>
            Provides a struct-based enumerator for use with <see cref="T:System.Collections.Generic.IDictionary`2"/>.
            Do not use this type directly. Use <see cref="M:NuGet.NoAllocEnumerateExtensions.NoAllocEnumerate``2(System.Collections.Generic.IDictionary{``0,``1})"/> instead.
            </summary>
        </member>
        <member name="T:NuGet.NoAllocEnumerateExtensions.OptimisticallyNonAllocatingDictionaryEnumerable`2.Enumerator">
            <summary>
            A struct-based enumerator for use with <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            Do not use this type directly. Use <see cref="M:NuGet.NoAllocEnumerateExtensions.NoAllocEnumerate``2(System.Collections.Generic.IDictionary{``0,``1})"/> instead.
            </summary>
        </member>
        <member name="T:NuGet.StringBuilderPool">
            <summary>
            Provides a resource pool that enables reusing instances of <see cref="T:System.Text.StringBuilder"/> instances.
            </summary>
            <remarks>
            <para>
            Renting and returning buffers with an <see cref="T:NuGet.StringBuilderPool"/> can increase performance
            in situations where <see cref="T:System.Text.StringBuilder"/> instances are created and destroyed frequently,
            resulting in significant memory pressure on the garbage collector.
            </para>
            <para>
            This class is thread-safe.  All members may be used by multiple threads concurrently.
            </para>
            </remarks>
        </member>
        <member name="F:NuGet.StringBuilderPool.Shared">
            <summary>
            Retrieves a shared <see cref="T:NuGet.StringBuilderPool"/> instance.
            </summary>
        </member>
        <member name="M:NuGet.StringBuilderPool.Rent(System.Int32)">
            <summary>
            Retrieves a <see cref="T:System.Text.StringBuilder"/> that is at least the requested length.
            </summary>
            <param name="minimumCapacity">The minimum capacity of the <see cref="T:System.Text.StringBuilder"/> needed.</param>
            <returns>
            A <see cref="T:System.Text.StringBuilder"/> that is at least <paramref name="minimumCapacity"/> in length.
            </returns>
            <remarks>
            This buffer is loaned to the caller and should be returned to the same pool via
            <see cref="M:NuGet.StringBuilderPool.ToStringAndReturn(System.Text.StringBuilder)"/> so that it may be reused in subsequent usage of <see cref="M:NuGet.StringBuilderPool.Rent(System.Int32)"/>.
            It is not a fatal error to not return a rented string builder, but failure to do so may lead to
            decreased application performance, as the pool may need to create a new instance to replace
            the one lost.
            </remarks>
        </member>
        <member name="M:NuGet.StringBuilderPool.ToStringAndReturn(System.Text.StringBuilder)">
            <summary>
            Returns to the pool an array that was previously obtained via <see cref="M:NuGet.StringBuilderPool.Rent(System.Int32)"/> on the same
            <see cref="T:NuGet.StringBuilderPool"/> instance, returning the built string.
            </summary>
            <param name="builder">
            The <see cref="T:System.Text.StringBuilder"/> previously obtained from <see cref="M:NuGet.StringBuilderPool.Rent(System.Int32)"/> to return to the pool.
            </param>
            <remarks>
            Once a <see cref="T:System.Text.StringBuilder"/> has been returned to the pool, the caller gives up all ownership
            of the instance and must not use it. The reference returned from a given call to <see cref="M:NuGet.StringBuilderPool.Rent(System.Int32)"/>
            must only be returned via <see cref="M:NuGet.StringBuilderPool.ToStringAndReturn(System.Text.StringBuilder)"/> once.  The default <see cref="T:NuGet.StringBuilderPool"/>
            may hold onto the returned instance in order to rent it again, or it may release the returned instance
            if it's determined that the pool already has enough instances stored.
            </remarks>
            <returns>The string, built from <paramref name="builder"/>.</returns>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute">
            <summary>Specifies that null is allowed as an input even if the corresponding type disallows it.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DisallowNullAttribute">
            <summary>Specifies that null is disallowed as an input even if the corresponding type allows it.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MaybeNullAttribute">
            <summary>Specifies that an output may be null even if the corresponding type disallows it.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.NotNullAttribute">
            <summary>Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute">
            <summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue"/>, the parameter may be null even if the corresponding type disallows it.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.#ctor(System.Boolean)">
            <summary>Initializes the attribute with the specified return value condition.</summary>
            <param name="returnValue">
            The return value condition. If the method returns this value, the associated parameter may be null.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MaybeNullWhenAttribute.ReturnValue">
            <summary>Gets the return value condition.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute">
            <summary>Specifies that when a method returns <see cref="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue"/>, the parameter will not be null even if the corresponding type allows it.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.#ctor(System.Boolean)">
            <summary>Initializes the attribute with the specified return value condition.</summary>
            <param name="returnValue">
            The return value condition. If the method returns this value, the associated parameter will not be null.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.NotNullWhenAttribute.ReturnValue">
            <summary>Gets the return value condition.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute">
            <summary>Specifies that the output will be non-null if the named parameter is non-null.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.#ctor(System.String)">
            <summary>Initializes the attribute with the associated parameter name.</summary>
            <param name="parameterName">
            The associated parameter name.  The output will be non-null if the argument to the parameter specified is non-null.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.NotNullIfNotNullAttribute.ParameterName">
            <summary>Gets the associated parameter name.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnAttribute">
            <summary>Applied to a method that will never return under any circumstance.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute">
            <summary>Specifies that the method will not return if the associated Boolean parameter is passed the specified value.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.#ctor(System.Boolean)">
            <summary>Initializes the attribute with the specified parameter value.</summary>
            <param name="parameterValue">
            The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
            the associated parameter matches this value.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.DoesNotReturnIfAttribute.ParameterValue">
            <summary>Gets the condition parameter value.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute">
            <summary>Specifies that the method or property will ensure that the listed field and property members have not-null values.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String)">
            <summary>Initializes the attribute with a field or property member.</summary>
            <param name="member">
            The field or property member that is promised to be not-null.
            </param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.#ctor(System.String[])">
            <summary>Initializes the attribute with the list of field and property members.</summary>
            <param name="members">
            The list of field and property members that are promised to be not-null.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullAttribute.Members">
            <summary>Gets field or property member names.</summary>
        </member>
        <member name="T:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute">
            <summary>Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.</summary>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String)">
            <summary>Initializes the attribute with the specified return value condition and a field or property member.</summary>
            <param name="returnValue">
            The return value condition. If the method returns this value, the associated parameter will not be null.
            </param>
            <param name="member">
            The field or property member that is promised to be not-null.
            </param>
        </member>
        <member name="M:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.#ctor(System.Boolean,System.String[])">
            <summary>Initializes the attribute with the specified return value condition and list of field and property members.</summary>
            <param name="returnValue">
            The return value condition. If the method returns this value, the associated parameter will not be null.
            </param>
            <param name="members">
            The list of field and property members that are promised to be not-null.
            </param>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.ReturnValue">
            <summary>Gets the return value condition.</summary>
        </member>
        <member name="P:System.Diagnostics.CodeAnalysis.MemberNotNullWhenAttribute.Members">
            <summary>Gets field or property member names.</summary>
        </member>
    </members>
</doc>
