Semver 3.0.0
A Semantic Version Library for .NET
Create, parse, and manipulate semantic version numbers with the SemVersion class and semantic
version ranges with the SemVersionRange class. This library complies with v2.0.0 of the semantic
versioning spec from semver.org.
API docs for the most recent release are available online at semver-nuget.org.
Parsing
var version = SemVersion.Parse("1.1.0-rc.1+e471d15", SemVersionStyles.Strict);
Constructing
var v1 = new SemVersion(1, 0);
var vNextRc = SemVersion.ParsedFrom(1, 1, 0, "rc.1");
Comparing
if (version.ComparePrecedenceTo(vNextRc) == 0)
Console.WriteLine($"{version} has the same precedence as {vNextRc}");
if (version.CompareSortOrderTo(vNextRc) > 0)
Console.WriteLine($"{version} sorts after {vNextRc}");
Outputs:
1.1.0-rc.1+e471d15 has the same precedence as 1.1.0-rc.1
1.1.0-rc.1+e471d15 sorts after 1.1.0-rc.1
Manipulating
Console.WriteLine($"Current: {version}");
if (version.IsPrerelease)
{
Console.WriteLine($"Prerelease: {version.Prerelease}");
Console.WriteLine($"Next release version is: {version.WithoutPrereleaseOrMetadata()}");
}
Outputs:
Current: 1.1.0-rc.1+e471d15
Prerelease: rc.1
Next release version is: 1.1.0
Version Ranges
var range = SemVersionRange.Parse("^1.0.0");
var prereleaseRange = SemVersionRange.ParseNpm("^1.0.0", includeAllPrerelease: true);
Console.WriteLine($"Range: {range}");
Console.WriteLine($"Prerelease range: {prereleaseRange}");
Console.WriteLine($"Range includes version {version}: {range.Contains(version)}");
Console.WriteLine($"Prerelease range includes version {version}: {prereleaseRange.Contains(version)}");
// Alternative: another way to call SemVersionRange.Contains(version)
version.Satisfies(range);
// Alternative: slower because it parses the range on every call
version.SatisfiesNpm("^1.0.0", includeAllPrerelease: true)
Outputs:
Range: 1.*
Prerelease range: *-* 1.*
Range includes version 1.1.0-rc.1+e471d15: False
Prerelease range includes version 1.1.0-rc.1+e471d15: True
Showing the top 20 packages that depend on Semver.
| Packages | Downloads |
|---|---|
|
UmbracoCms.Core
Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms package to setup Umbraco in Visual Studio as an ASP.NET project.
|
9 |
|
UmbracoCms.Core
Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms package to setup Umbraco in Visual Studio as an ASP.NET project.
|
10 |
|
UmbracoCms.Core
Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project.
|
9 |
|
UmbracoCms.Core
Contains the core assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms-package to setup Umbraco in Visual Studio as an ASP.NET project.
|
10 |
.NET 5.0
- Microsoft.Extensions.Primitives (>= 5.0.1)
.NET Standard 2.0
- IndexRange (>= 1.0.3)
- Microsoft.Bcl.HashCode (>= 1.1.1)
- Microsoft.Extensions.Primitives (>= 2.0.0)
.NET Standard 2.1
- Microsoft.Extensions.Primitives (>= 3.0.3)
| Version | Downloads | Last updated |
|---|---|---|
| 3.0.0 | 6 | 23.08.2025 |
| 3.0.0-beta.2 | 5 | 23.08.2025 |
| 3.0.0-beta.1 | 5 | 23.08.2025 |
| 3.0.0-beta.0 | 6 | 23.08.2025 |
| 2.3.0 | 5 | 23.08.2025 |
| 2.3.0-beta.0 | 5 | 23.08.2025 |
| 2.3.0-alpha.0 | 6 | 23.08.2025 |
| 2.2.0 | 6 | 23.08.2025 |
| 2.2.0-rc.0 | 5 | 23.08.2025 |
| 2.1.0 | 5 | 23.08.2025 |
| 2.1.0-rc.1 | 6 | 23.08.2025 |
| 2.1.0-rc.0 | 5 | 23.08.2025 |
| 2.0.6 | 5 | 23.08.2025 |
| 2.0.5 | 6 | 23.08.2025 |
| 2.0.4 | 5 | 23.08.2025 |
| 2.0.3 | 5 | 23.08.2025 |
| 1.1.2 | 6 | 23.08.2025 |
| 1.1.1 | 6 | 23.08.2025 |
| 1.1.0 | 5 | 23.08.2025 |
| 1.0.5 | 6 | 23.08.2025 |
| 1.0.4 | 6 | 23.08.2025 |
| 1.0.3 | 6 | 23.08.2025 |
| 1.0.1 | 6 | 23.08.2025 |
| 1.0.0 | 6 | 23.08.2025 |