public static Version DetermineGenerationForFramework(NuGetFramework framework, bool useNetPlatform) { FrameworkExpander expander = new FrameworkExpander(); var generationFramework = useNetPlatform ? FrameworkConstants.FrameworkIdentifiers.NetPlatform : FrameworkConstants.FrameworkIdentifiers.NetStandard; var generationFxs = expander.Expand(framework).Where(fx => fx.Framework == generationFramework).Select(fx => fx.Version); return(generationFxs.Max()); }
public void FrameworkExpander_Win() { NuGetFramework framework = NuGetFramework.Parse("win"); FrameworkExpander expander = new FrameworkExpander(); var expanded = expander.Expand(framework).ToArray(); Assert.Equal <int>(7, expanded.Length); }
public void FrameworkExpander_NetCore45() { NuGetFramework framework = NuGetFramework.Parse("nfcore45"); FrameworkExpander expander = new FrameworkExpander(); var expanded = expander.Expand(framework).ToArray(); Assert.Equal(0, expanded.Length); }
public void FrameworkExpander_NetCore45() { NuGetFramework framework = NuGetFramework.Parse("nfcore45"); FrameworkExpander expander = new FrameworkExpander(); var expanded = expander.Expand(framework).ToArray(); Assert.Equal(1, expanded.Length); Assert.Equal("native, Version=v0.0", expanded[0].ToString()); }
public void FrameworkExpander_Indirect() { NuGetFramework framework = NuGetFramework.Parse("win9"); NuGetFramework indirect = new NuGetFramework(".NETCore", new Version(4, 5)); FrameworkExpander expander = new FrameworkExpander(); var expanded = expander.Expand(framework).ToArray(); Assert.True(expanded.Contains(indirect, NuGetFramework.Comparer), String.Join("|", expanded.Select(e => e.ToString()))); }
public void FrameworkExpander_UAPWIN() { NuGetFramework framework = NuGetFramework.Parse("UAP10.0"); NuGetFramework indirect = new NuGetFramework("Windows", new Version(8, 1, 0, 0)); FrameworkExpander expander = new FrameworkExpander(); var expanded = expander.Expand(framework).ToArray(); Assert.True(expanded.Contains(indirect, NuGetFramework.Comparer), String.Join("|", expanded.Select(e => e.ToString()))); }
public void FrameworkExpander_Basic() { NuGetFramework framework = NuGetFramework.Parse("net45"); FrameworkExpander expander = new FrameworkExpander(); var expanded = expander.Expand(framework).ToArray(); Assert.Equal(2, expanded.Length); Assert.Equal(".NETFramework,Version=v4.5,Profile=Client", expanded[0].ToString()); Assert.Equal(".NETFramework,Version=v4.5,Profile=Full", expanded[1].ToString()); }
private static IEnumerable <FrameworkEnumeratorData> ExpandByUsingFrameworkExpander( HashSet <FrameworkEnumeratorData> existing, FrameworkEnumeratorData data, FrameworkExpander expander) { var expanded = expander .Expand(data.Framework.NuGetFramework) .Select(GetFrameworkEnumeratorData); if (expanded.Any()) { foreach (var added in AddFrameworks(existing, expanded)) { yield return(added); } } }
public void FrameworkExpander_Basic() { NuGetFramework framework = NuGetFramework.Parse("net45"); FrameworkExpander expander = new FrameworkExpander(); var expanded = expander .Expand(framework) .OrderBy(f => f, new NuGetFrameworkSorter()) .ToArray(); Assert.Equal(7, expanded.Length); Assert.Equal(".NETFramework,Version=v4.5,Profile=Client", expanded[0].ToString()); Assert.Equal(".NETFramework,Version=v4.5,Profile=Full", expanded[1].ToString()); Assert.Equal(".NETPlatform,Version=v5.0", expanded[2].ToString()); // dotnet Assert.Equal(new Version(0, 0, 0, 0), expanded[2].Version); Assert.Equal(".NETPlatform,Version=v5.0", expanded[3].ToString()); // dotnet5 Assert.Equal(new Version(5, 0, 0, 0), expanded[3].Version); Assert.Equal(".NETPlatform,Version=v5.2", expanded[4].ToString()); Assert.Equal(".NETStandard,Version=v1.0", expanded[5].ToString()); Assert.Equal(".NETStandard,Version=v1.1", expanded[6].ToString()); }
public IEnumerable <FrameworkEnumeratorData> Expand(IEnumerable <FrameworkEnumeratorData> frameworks, FrameworkExpansionOptions options) { var existing = new HashSet <FrameworkEnumeratorData>(); foreach (var data in frameworks) { var originalAdded = AddFramework(existing, data); if (originalAdded != null) { yield return(originalAdded); } if (options.HasFlag(FrameworkExpansionOptions.RoundTripDotNetFrameworkName)) { foreach (var added in ExpandByRoundTrippingDotNetFrameworkName(existing, data)) { yield return(added); } } if (options.HasFlag(FrameworkExpansionOptions.RoundTripShortFolderName)) { foreach (var added in ExpandByRoundTrippingShortFolderName(existing, data)) { yield return(added); } } if (options.HasFlag(FrameworkExpansionOptions.FrameworkExpander)) { var expander = new FrameworkExpander(); foreach (var added in ExpandByUsingFrameworkExpander(existing, data, expander)) { yield return(added); } } } }
public void FrameworkExpander_Win() { NuGetFramework framework = NuGetFramework.Parse("win"); FrameworkExpander expander = new FrameworkExpander(); var expanded = expander .Expand(framework) .OrderBy(f => f, new NuGetFrameworkSorter()) .ToArray(); Assert.Equal(10, expanded.Length); Assert.Equal(".NETCore,Version=v0.0", expanded[0].ToString()); Assert.Equal(".NETCore,Version=v4.5", expanded[1].ToString()); Assert.Equal(".NETPlatform,Version=v5.0", expanded[2].ToString()); // dotnet Assert.Equal(new Version(0, 0, 0, 0), expanded[2].Version); Assert.Equal(".NETPlatform,Version=v5.0", expanded[3].ToString()); // dotnet5 Assert.Equal(new Version(5, 0, 0, 0), expanded[3].Version); Assert.Equal(".NETPlatform,Version=v5.2", expanded[4].ToString()); Assert.Equal(".NETStandard,Version=v1.0", expanded[5].ToString()); Assert.Equal(".NETStandard,Version=v1.1", expanded[6].ToString()); Assert.Equal("Windows,Version=v8.0", expanded[7].ToString()); Assert.Equal("WinRT,Version=v0.0", expanded[8].ToString()); Assert.Equal("WinRT,Version=v4.5", expanded[9].ToString()); }
private void LoadFrameworks() { _frameworks = new Dictionary <NuGetFramework, string[]>(NuGetFramework.Comparer); // load the specified frameworks foreach (var framework in Frameworks) { var runtimeIds = framework.GetMetadata("RuntimeIDs")?.Split(';'); NuGetFramework fx; try { fx = FrameworkUtilities.ParseNormalized(framework.ItemSpec); } catch (Exception ex) { Log.LogError($"Could not parse Framework {framework.ItemSpec}. {ex}"); continue; } if (fx.Equals(NuGetFramework.UnsupportedFramework)) { Log.LogError($"Did not recognize {framework.ItemSpec} as valid Framework."); continue; } _frameworks.Add(fx, runtimeIds); } // inspect any TFMs explicitly targeted var fileFrameworks = _targetPathToPackageItem.Values.Select(f => f.TargetFramework).Distinct(NuGetFramework.Comparer).Where(f => f != null); foreach (var fileFramework in fileFrameworks) { if (!_frameworks.ContainsKey(fileFramework)) { _frameworks.Add(fileFramework, s_noRids); } } // inspect any TFMs inbox var index = PackageIndex.Load(PackageIndexes.Select(pi => pi.GetMetadata("FullPath"))); var inboxFrameworks = index.GetInboxFrameworks(PackageId).NullAsEmpty(); foreach (var inboxFramework in inboxFrameworks) { if (!_frameworks.ContainsKey(inboxFramework)) { _frameworks.Add(inboxFramework, s_noRids); } } // inspect for derived TFMs var expander = new FrameworkExpander(); foreach (var framework in _frameworks.Keys.ToArray()) { var derivedFxs = expander.Expand(framework); foreach (var derivedFx in derivedFxs) { if (derivedFx.IsDesktop() && derivedFx.HasProfile) { // skip desktop profiles continue; } if (derivedFx.Version.Major == 0 && derivedFx.Version.Minor == 0) { // skip unversioned frameworks continue; } if (s_ignoredFrameworks.Contains(derivedFx.Framework)) { continue; } if (!_frameworks.ContainsKey(derivedFx)) { _frameworks.Add(derivedFx, s_noRids); } } } }
private void LoadFrameworks() { _frameworks = new Dictionary <NuGetFramework, string[]>(NuGetFramework.Comparer); // load the specified frameworks foreach (var framework in Frameworks) { var runtimeIds = framework.GetMetadata("RuntimeIDs")?.Split(';'); NuGetFramework fx; try { fx = FrameworkUtilities.ParseNormalized(framework.ItemSpec); } catch (Exception ex) { Log.LogError($"Could not parse Framework {framework.ItemSpec}. {ex}"); continue; } if (fx.Equals(NuGetFramework.UnsupportedFramework)) { Log.LogError($"Did not recognize {framework.ItemSpec} as valid Framework."); continue; } _frameworks.Add(fx, runtimeIds); } // inspect any TFMs explicitly targeted var fileFrameworks = _targetPathToPackageItem.Values.Select(f => f.TargetFramework).Distinct(NuGetFramework.Comparer).Where(f => f != null); foreach (var fileFramework in fileFrameworks) { if (!_frameworks.ContainsKey(fileFramework)) { _frameworks.Add(fileFramework, s_noRids); } } // inspect any TFMs inbox var frameworkData = FrameworkSet.Load(FrameworkListsPath); var inboxFrameworks = frameworkData.Frameworks.SelectMany(f => f.Value) .Where(fx => fx.Assemblies.ContainsKey(PackageId)) .Select(fx => NuGetFramework.Parse(fx.FrameworkName.FullName)); foreach (var inboxFramework in inboxFrameworks) { if (!_frameworks.ContainsKey(inboxFramework)) { _frameworks.Add(inboxFramework, s_noRids); } } // inspect for derived TFMs var expander = new FrameworkExpander(); foreach (var framework in _frameworks.Keys.ToArray()) { var derivedFxs = expander.Expand(framework); foreach (var derivedFx in derivedFxs) { if (!_frameworks.ContainsKey(derivedFx)) { _frameworks.Add(derivedFx, s_noRids); } } } }
private static ISet <NuGetFramework> ExpandTargetFramework(NuGetFramework targetFramework) { var expander = new FrameworkExpander(); return(new HashSet <NuGetFramework>(expander.Expand(targetFramework))); }