private List <NugetDependency> GetDependencies() { NuGet.PackageReferenceFile configFile = new NuGet.PackageReferenceFile(PackagesConfigPath); List <NuGet.PackageReference> packages = new List <NuGet.PackageReference>(configFile.GetPackageReferences()); var dependencies = new List <NugetDependency>(); foreach (var packageRef in packages) { string componentName = packageRef.Id; var version = new NuGet.Versioning.NuGetVersion(packageRef.Version.Version, packageRef.Version.SpecialVersion, packageRef.Version.Metadata); var versionRange = new NuGet.Versioning.VersionRange(version, true, version, true); NuGet.Frameworks.NuGetFramework framework = null; if (packageRef.TargetFramework != null) { try { framework = NuGet.Frameworks.NuGetFramework.Parse(packageRef.TargetFramework.FullName); } catch (Exception e) { Console.WriteLine("Unable to parse framework: " + packageRef.TargetFramework.FullName); } } var dep = new NugetDependency(componentName, versionRange, framework); dependencies.Add(dep); } return(dependencies); }
private NuGet.Versioning.NuGetVersion BestLibraryVersion(string name, NuGet.Versioning.VersionRange range, IList <NuGet.ProjectModel.LockFileLibrary> libraries) { var versions = libraries.Where(lib => lib.Name == name).Select(lib => lib.Version); var bestMatch = range.FindBestMatch(versions); if (bestMatch == null) { if (versions.Count() == 1) { return(versions.First()); } else { Console.WriteLine($"WARNING: Unable to find a version to satisfy range {range.PrettyPrint()} for the dependency " + name); if (range.HasUpperBound && !range.HasLowerBound) { Console.WriteLine($"Instead will return the maximum range demanded: " + range.MaxVersion.ToFullString()); return(range.MaxVersion); } else { Console.WriteLine($"Instead will return the minimum range demanded: " + range.MinVersion.ToFullString()); return(range.MinVersion); } } } else { return(bestMatch); } }
public PackageDependency(string packageId, NuGet.Versioning.VersionRange allowedVersions) { Guard.NotNull(packageId, nameof(packageId)); Guard.NotNull(allowedVersions, nameof(allowedVersions)); PackageId = packageId; AllowedVersions = allowedVersions; }
public void ReplaceMaxVersion_Test(string range, string newMaxVersion) { var versionRange = NuGet.Versioning.VersionRange.Parse(range); var maxVersion = NuGet.Versioning.NuGetVersion.Parse(newMaxVersion); var expected = new NuGet.Versioning.VersionRange(versionRange.MinVersion, true, NuGet.Versioning.NuGetVersion.Parse(newMaxVersion)); var result = versionRange.ReplaceMaxVersion(maxVersion); Assert.Equal(expected, result); }
public string GetBestVersion(string name, NuGet.Versioning.VersionRange range) { var allVersions = versions.Keys.Where(key => key.Name == name).Select(key => versions[key]); var best = range.FindBestMatch(allVersions.Select(ver => ver.version)); foreach (var pair in versions) { if (pair.Key.Name == name && pair.Value.version == best) { return(pair.Key.Version); } } return(null); }
public ProjectFileDependency ParseProjectFileDependencyGroup(String projectFileDependency) { //Reverse engineered from: https://github.com/NuGet/NuGet.Client/blob/538727480d93b7d8474329f90ccb9ff3b3543714/src/NuGet.Core/NuGet.LibraryModel/LibraryRange.cs#L68 //With some hints from https://github.com/dotnet/NuGet.BuildTasks/pull/23/files int firstSpace = projectFileDependency.IndexOf(' '); if (firstSpace <= -1) { return(new ProjectFileDependency(projectFileDependency, NuGet.Versioning.VersionRange.All)); } else { var name = projectFileDependency.Substring(0, firstSpace); var versionRaw = projectFileDependency.Substring(firstSpace).Trim(); NuGet.Versioning.VersionRange nugetVersion; if (versionRaw.StartsWith(">= ")) { nugetVersion = MinVersionOrFloat(versionRaw.Substring(3).Trim(), true /* Include min version. */); } else if (versionRaw.StartsWith("> ")) { nugetVersion = MinVersionOrFloat(versionRaw.Substring(2).Trim(), false /* Do not include min version. */); } else if (versionRaw.StartsWith("<= ")) { var maxVersion = NuGet.Versioning.NuGetVersion.Parse(versionRaw.Substring(3).Trim()); nugetVersion = new NuGet.Versioning.VersionRange(null, false, maxVersion, true /* Include Max */); } else if (versionRaw.StartsWith("< ")) { var maxVersion = NuGet.Versioning.NuGetVersion.Parse(versionRaw.Substring(2).Trim()); nugetVersion = new NuGet.Versioning.VersionRange(null, false, maxVersion, false /* Do NOT Include Max */); } else { nugetVersion = NuGet.Versioning.VersionRange.All; } return(new ProjectFileDependency(name, nugetVersion)); } }
private List <NugetDependency> GetDependencies() { System.IO.Stream stream = new System.IO.FileStream(PackagesConfigPath, System.IO.FileMode.Open, System.IO.FileAccess.Read); PackagesConfigReader reader = new PackagesConfigReader(stream); List <PackageReference> packages = reader.GetPackages().ToList(); var dependencies = new List <NugetDependency>(); foreach (var packageRef in packages) { string componentName = packageRef.PackageIdentity.Id; var version = packageRef.PackageIdentity.Version; var versionRange = new NuGet.Versioning.VersionRange(version, true, version, true); var framework = NuGet.Frameworks.NuGetFramework.Parse(packageRef.TargetFramework.Framework); //TODO: Check that this works. var dep = new NugetDependency(componentName, versionRange, framework); dependencies.Add(dep); } return(dependencies); }
private static string ToPunditFileSearchVersion(NuGet.Versioning.VersionRange range) { if (range.MaxVersion != null) { if (range.MinVersion.Major < range.MaxVersion.Major) { return(range.MinVersion.Major + ".*"); } if (range.MinVersion.Minor < range.MaxVersion.Minor) { return(range.MinVersion.Major + "." + range.MinVersion.Minor + ".*"); } if (range.MinVersion.Patch < range.MaxVersion.Patch) { return(range.MinVersion.Major + "." + range.MinVersion.Minor + "." + range.MinVersion.Patch + "-*"); } } return(range.MinVersion.Major + "." + range.MinVersion.Minor + "." + range.MinVersion.Patch + "-" + range.MinVersion.Revision); }
public RuntimePackageDependency(string id, NuGet.Versioning.VersionRange versionRange) { }
public LibraryRange(string name, NuGet.Versioning.VersionRange versionRange, NuGet.LibraryModel.LibraryDependencyTarget typeConstraint) { }
public static bool TryParse(string value, out NuGet.Versioning.VersionRange versionRange) { throw null; }
public static bool IsGreaterThanOrEqualTo(NuGet.Versioning.VersionRange nearVersion, NuGet.Versioning.VersionRange farVersion) { throw null; }
public DownloadDependency(string name, NuGet.Versioning.VersionRange versionRange) { }
public VersionRangeExtended(NuGet.Versioning.NuGetVersion minVersion) { NuGetVersionRange = new NuGet.Versioning.VersionRange(minVersion); }
public bool Equals(NuGet.Versioning.VersionRange other) { throw null; }
public static T FindBestMatch <T>(this System.Collections.Generic.IEnumerable <T> items, NuGet.Versioning.VersionRange ideal, System.Func <T, NuGet.Versioning.NuGetVersion> selector) where T : class { throw null; }
public VersionRange(NuGetVersionRange versionRange) { NuGetVersionRange = versionRange; MaxVersion = new Version(NuGetVersionRange.MaxVersion); MinVersion = new Version(NuGetVersionRange.MinVersion); }
public PackageDependency(string id, NuGet.Versioning.VersionRange versionRange, System.Collections.Generic.IReadOnlyList <string> include, System.Collections.Generic.IReadOnlyList <string> exclude) { }
public VersionRange Parse(string input) { var nuGetVersionRange = NuGetVersionRange.Parse(input); return(new VersionRange(nuGetVersionRange)); }
public VersionRangeExtended(NuGet.Versioning.NuGetVersion minVersion, NuGet.Versioning.NuGetVersion maxVersion, string originalString) { NuGetVersionRange = new NuGet.Versioning.VersionRange(minVersion, true, maxVersion, false, null, originalString); }
internal PackageReference(string name, NuGet.Versioning.VersionRange versionRange) { _path = NuGetHelper.GetPath(name, versionRange, out _version); _name = name; }
public VersionRange(NuGet.Versioning.VersionRange range, NuGet.Versioning.FloatRange floatRange) : base(default(NuGet.Versioning.NuGetVersion), default(bool), default(NuGet.Versioning.NuGetVersion), default(bool)) { }
public ProjectFileDependency(string name, NuGet.Versioning.VersionRange versionRange) { this.name = name; this.versionRange = versionRange; }
public static bool TryParse(string value, bool allowFloating, out NuGet.Versioning.VersionRange versionRange) { versionRange = default(NuGet.Versioning.VersionRange); throw null; }
public static NuGet.Versioning.INuGetVersionable FindBestMatch(this System.Collections.Generic.IEnumerable <NuGet.Versioning.INuGetVersionable> items, NuGet.Versioning.VersionRange ideal) { throw null; }
public VersionRangeExtended(NuGet.Versioning.VersionRange range) { NuGetVersionRange = range; }