packageurl-dotnet
2.0.0-rc.3
dotnet add package packageurl-dotnet --version 2.0.0-rc.3
NuGet\Install-Package packageurl-dotnet -Version 2.0.0-rc.3
<PackageReference Include="packageurl-dotnet" Version="2.0.0-rc.3" />
<PackageVersion Include="packageurl-dotnet" Version="2.0.0-rc.3" />
<PackageReference Include="packageurl-dotnet" />
paket add packageurl-dotnet --version 2.0.0-rc.3
#r "nuget: packageurl-dotnet, 2.0.0-rc.3"
#:package packageurl-dotnet@2.0.0-rc.3
#addin nuget:?package=packageurl-dotnet&version=2.0.0-rc.3&prerelease
#tool nuget:?package=packageurl-dotnet&version=2.0.0-rc.3&prerelease
packageurl-dotnet
A .NET parser for Package URLs (ECMA-427). Handles strings like pkg:nuget/Newtonsoft.Json@13.0.1 -- parses them apart, builds them from components, gives you a canonical form back.
Targets .NET Standard 2.0, so it works anywhere from .NET Framework 4.6.1 through .NET 10+.
Install
dotnet add package packageurl-dotnet
Or in your project file:
<PackageReference Include="packageurl-dotnet" Version="2.0.0" />
Usage
Parse a PURL string:
var purl = new PackageUrl("pkg:nuget/Newtonsoft.Json@13.0.1");
Console.WriteLine(purl.Type); // nuget
Console.WriteLine(purl.Name); // Newtonsoft.Json
Console.WriteLine(purl.Version); // 13.0.1
Build one from parts:
var purl = new PackageUrl(
type: "maven",
@namespace: "org.apache.commons",
name: "commons-lang3",
version: "3.14.0",
qualifiers: null,
subpath: null);
Console.WriteLine(purl.ToString());
// pkg:maven/org.apache.commons/commons-lang3@3.14.0
There's also a two-argument shorthand if you only need type and name:
var purl = new PackageUrl("npm", "lodash");
Build from source
Requires .NET SDK 10+.
dotnet pack -c Release
dotnet test -c Release ./tests
Or open PackageUrl.slnx in Visual Studio 2022+ and run tests from Test Explorer.
License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (5)
Showing the top 5 NuGet packages that depend on packageurl-dotnet:
| Package | Downloads |
|---|---|
|
Microsoft.ComponentDetection.Contracts
Package Description |
|
|
Microsoft.Sbom.Adapters
Provides a set of adapters from external component formats to a single SBOM format. |
|
|
Microsoft.CST.OSSGadget.Shared
OSS Gadget - Shared Library Functionality |
|
|
Microsoft.Sbom.Api
Highly scalable, extensible and enterprise ready API to create SBOMs for any variety of artifacts. |
|
|
DogmaSolutions.VulnerabilityScanners.Ghsa
Package Description |
GitHub repositories (3)
Showing the top 3 popular GitHub repositories that depend on packageurl-dotnet:
| Repository | Stars |
|---|---|
|
microsoft/sbom-tool
The SBOM tool is a highly scalable and enterprise ready tool to create SPDX 2.2 compatible SBOMs for any variety of artifacts.
|
|
|
microsoft/component-detection
Scans your project to determine what components you use
|
|
|
microsoft/OSSGadget
Collection of tools for analyzing open source packages.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0-rc.3 | 2,215 | 3/25/2026 |
| 2.0.0-rc.2 | 1,231 | 3/19/2026 |
| 2.0.0-rc.1 | 99 | 3/19/2026 |
| 1.3.0 | 617,888 | 5/25/2023 |
| 1.2.1 | 1,844 | 3/16/2023 |
| 1.2.0 | 5,900 | 2/1/2023 |
| 1.1.1 | 2,468 | 10/28/2022 |
| 1.1.0 | 116,137 | 3/8/2022 |
| 1.0.0 | 188,239 | 2/28/2022 |