/// <summary> /// Specifies parts of a semantic version. Unset parameters will be treated as 'any'. /// </summary> /// public VersionSpecifier(int?major, int?minor, int?patch, string prerelease, string buildMetadata, VersionMatchBehavior matchBehavior) { if (major == null && minor != null) { throw new ArgumentException(); } if (minor == null && patch != null) { throw new ArgumentException(); } Major = major; Minor = minor; Patch = patch; PreRelease = prerelease; BuildMetadata = buildMetadata; MatchBehavior = matchBehavior; }
/// <summary> /// Search parameters that specify an exact or a version compatible match to the given package/identifier. /// </summary> public PackageSpecifier(IPackageIdentifier package, VersionMatchBehavior versionMatchBehavior = VersionMatchBehavior.Exact) : this(package.Name, new VersionSpecifier(package.Version, versionMatchBehavior), package.Architecture, package.OS) { }
/// <summary> /// Creates a VersionSpecifier from a <see cref="SemanticVersion"/>. /// </summary> public VersionSpecifier(SemanticVersion ver, VersionMatchBehavior matchBehavior) : this(ver?.Major, ver?.Minor, ver?.Patch, ver?.PreRelease, ver?.BuildMetadata, matchBehavior) { }