Nuget License Utility is a tool to analyze, print, and validate the licenses of dependencies in .NET and C++ projects. It supports .NET (Core), .NET Standard, .NET Framework, and native C++ projects.
- Analyze project or solution files for NuGet package licenses
- Validate licenses against an allowed list
- Download license files for auditing
- Supports transitive dependencies, custom mappings, and overrides
- Flexible output: table or JSON (pretty/minified)
- Exclude or ignore specific packages or projects
- Works with .NET Core, .NET Framework, and native C++ projects
This repository provides two main tools:
| Tool | Description | Supported Project Types |
|---|---|---|
| NuGetLicenseCore (dotnet tool) |
Cross-platform .NET Core global tool, installed via dotnet tool install. |
.NET Core, .NET Standard, partial .NET Framework1 |
| NuGetLicenseFramework.exe | Standalone .NET Framework executable. | .NET Core, .NET Standard, .NET Framework, native C++ |
1 .NET Framework support via the dotnet tool may vary due to MSBuild/environment differences.
| Tool | .NET Core | .NET Standard | .NET Framework | Native C++ |
|---|---|---|---|---|
| NuGetLicenseCore (dotnet tool) |
✔️ | ✔️ | Partial support |
❌ |
| NuGetLicenseFramework.exe | ✔️ | ✔️ | ✔️ | ✔️ |
dotnet tool install --global nuget-licenseDownload the latest release from GitHub Releases and run the executable directly.
nuget-license [options]| Option | Description |
|---|---|
--version |
Show version information. |
-i, --input <FILE> |
Project or solution file to analyze. |
-ji, --json-input <FILE> |
JSON file with an array of project/solution files to analyze. See docs/input-json.md. |
-t, --include-transitive |
Include transitive dependencies. |
-a, --allowed-license-types <FILE> |
JSON file listing allowed license types. See docs/allowed-licenses-json.md. |
-ignore, --ignored-packages <FILE> |
JSON file listing package names to ignore (supports wildcards). See docs/ignored-packages-json.md. |
-mapping, --licenseurl-to-license-mappings <FILE> |
JSON dictionary mapping license URLs to license types. See docs/licenseurl-mappings-json.md. |
-override, --override-package-information <FILE> |
JSON list to override package/license info. See docs/override-package-json.md. |
-d, --license-information-download-location <FOLDER> |
Download all license files to the specified folder. |
-o, --output <TYPE> |
Output format: Table, Markdown, Json or JsonPretty (default: Table). |
-err, --error-only |
Only show validation errors. |
-include-ignored, --include-ignored-packages |
Include ignored packages in output. |
-exclude-projects, --exclude-projects-matching <PATTERN|FILE> |
Exclude projects by name or pattern (supports wildcards or JSON file). See docs/exclude-projects-json.md. |
-isp, --include-shared-projects |
Include shared projects (.shproj). |
-f, --target-framework <TFM> |
Analyze for a specific Target Framework Moniker. |
-fo, --file-output <FILE> |
Write output to a file instead of console. |
-?, -h, --help |
Show help information. |
nuget-license --helpnuget-license -i MyProject.csprojnuget-license -i MySolution.slnnuget-license -i MyProject.csproj -a allowed-licenses.jsonnuget-license -i MyProject.csproj -o JsonPrettynuget-license -i MyProject.csproj -d licenses/- Multiple projects: Use
-jiwith a JSON file listing multiple projects/solutions. - Override package info: Use
-overrideto supply custom license info for specific packages. - Ignore packages: Use
-ignoreto skip in-house or known packages. - Exclude projects: Use
-exclude-projectsto skip test or sample projects.
- Clone the repository.
- Build with your preferred .NET SDK.
- For the dotnet tool:
dotnet pack NuGetLicenseCore - For the framework exe: build
NuGetLicenseFrameworkand use the resulting.exe.
See LICENSE for details.