package-url/packageurl-dotnet

GitHub: package-url/packageurl-dotnet

一个 .NET 解析器,用于处理与构建符合 ECMA-427 规范的 Package URL。

Stars: 16 | Forks: 14

# packageurl-dotnet [![Build](https://img.shields.io/github/actions/workflow/status/package-url/packageurl-dotnet/build.yml?branch=master&style=for-the-badge)][build-url] [![License](https://img.shields.io/github/license/package-url/packageurl-dotnet?style=for-the-badge)][license-url] [![NuGet](https://img.shields.io/nuget/v/packageurl-dotnet?style=for-the-badge)][nuget-url] 一个用于 [Package URLs](https://ecma-tc54.github.io/ECMA-427/)(ECMA-427)的 .NET 解析器。处理类似 `pkg:nuget/Newtonsoft.Json@13.0.1` 的字符串——将其解析、构建,并返回规范形式。 目标 .NET Standard 2.0,因此适用于从 .NET Framework 4.6.1 到 .NET 10+ 的所有环境。 ## 安装 ``` dotnet add package packageurl-dotnet ``` 或在项目文件中添加: ``` ``` ## 用法 解析 PURL 字符串: ``` 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 ``` 从组件构建: ``` 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 ``` 如果只需要类型和名称,也有双参数简写形式: ``` var purl = new PackageURL("npm", "lodash"); ``` ## 从源代码构建 需要 .NET SDK 10+。 ``` dotnet pack -c Release dotnet test -c Release ./tests ``` 或者在 Visual Studio 2022+ 中打开 `PackageUrl.slnx`,并通过测试资源管理器运行测试。 ## 许可证 [MIT](LICENSE)
标签:Cilium, ECMA-427, Maven, .NET 10, .NET Framework, NET Standard, NPM, NuGet, Package URL, PURL, 依赖管理, 包管理, 多人体追踪, 字符串解析, 安全可观测性, 开源, 漏洞验证, 版本控制, 组件识别, 解析器, 软件供应链