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-license
Download 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 --help
nuget-license -i MyProject.csproj
nuget-license -i MySolution.sln
nuget-license -i MyProject.csproj -a allowed-licenses.json
nuget-license -i MyProject.csproj -o JsonPretty
nuget-license -i MyProject.csproj -d licenses/
- Multiple projects: Use
-ji
with a JSON file listing multiple projects/solutions. - Override package info: Use
-override
to supply custom license info for specific packages. - Ignore packages: Use
-ignore
to skip in-house or known packages. - Exclude projects: Use
-exclude-projects
to 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
NuGetLicenseFramework
and use the resulting.exe
.
See LICENSE for details.