⚠️ This project seems to be abandoned: The original author of this project has not shown up in quite some while. Therefore it's impossible to move forward with it (even though there are people that do have write access to the repository. There has been a rewrite of the project that provides similar functionality. Please check it out here: https://github.com/sensslen/nuget-license.
A .net core tool to print the licenses of a project. This tool support .NET Core and .NET Standard Projects.
dotnet tool install --global dotnet-project-licenses
dotnet tool uninstall --global dotnet-project-licenses
Usage: dotnet-project-licenses [options]
Options:
Option | Description |
-i, --input | Project Folder |
-o, --output | (Default: false) Save as text file (licenses.txt) |
--outfile | Output filename |
-f, --output-directory | Output Directory/Folder |
-j, --json | (Default: false) Save licenses list in a json file (licenses.json) |
-m, --md | (Default: false) Save licenses list in a markdown file (licenses.md) |
--include-project-file | (Default: false) Add project file path to information when enabled |
-l, --log-level | (Default: Error) Set log level for output display. Options: Error,Warning,Information,Verbose |
--allowed-license-types | Simple json file of a text array of allowable licenses, if no file is given, all are assumed allowed. Cannot be used alongside 'forbidden-license-types'. |
--forbidden-license-types | Simple json file of a text array of forbidden licenses, if no file is given, none are assumed forbidden. Cannot be used alongside 'allowed-license-types'. |
--manual-package-information | Simple json file of an array of LibraryInfo objects for manually determined packages |
--licenseurl-to-license-mappings | Simple json file of Dictionary to override default mappings |
-t, --include-transitive | Include distinct transitive package licenses per project file |
--use-project-assets-json | Use the resolved project.assets.json file for each project as the source of package information. Requires the -t option since this always includes transitive.references. Requires nuget restore or dotnet restore to be run first |
--projects-filter | Simple json file of a text array of projects to skip. Supports Ends with matching such as 'Tests.csproj, Tests.vbproj, Tests.fsproj' |
--packages-filter | Simple json file of a text array of packages to skip. Or a regular expression defined between two forward slashes '/regex/' or two hashes '#regex#' |
-u, --unique | (Default: false) Unique licenses list by Id/Version |
-p, --print | (Default: true) Print licenses |
-e, --export-license-texts | Export the raw license texts |
-c, --convert-html-to-text | Strip HTML tags if the license file is HTML and save as plain text (EXPERIMENTAL) |
--help | Display this help screen |
--version | Display version information |
--ignore-ssl-certificate-errors | Ignore SSL certificate errors in HttpClient |
--timeout | Set HttpClient timeout in seconds |
--proxy-url | Set a proxy server URL to be used by HttpClient |
--proxy-system-auth | Use the system credentials for proxy authentication |
dotnet-project-licenses --help
dotnet-project-licenses -i projectFolder
Values for the input may include a folder path, a Visual Studio '.sln' file, a '.csproj' or a '.fsproj' file or a '.vbproj' file.
dotnet-project-licenses -i projectFolder -u
dotnet-project-licenses -i projectFolder -u -o
dotnet-project-licenses -i projectFolder -o --outfile ../../../another/folder/new-name.txt
dotnet-project-licenses -i projectFolder -u -o -j
dotnet-project-licenses -i projectFolder --export-license-texts
dotnet-project-licenses -i projectFolder -o -j -f ~/Projects/github --outfile ~/Projects/output.json --export-license-texts
Exports all license texts in the current directory excluding all Microsoft packages. Licenses in HTML format are saved as plain text files.
dotnet-project-licenses -i projectFolder --export-license-texts --convert-html-to-text --packages-filter '/Microsoft.*/'
dotnet-project-licenses -i projectSolution.sln --use-project-assets-json --packages-filter '#System\..*#'
dotnet-project-licenses -i projectFolder --proxy-url "http://my.proxy.com:8080"
dotnet-project-licenses -i projectFolder --proxy-url "http://my.proxy.com:8080" --proxy-system-auth
docker build . -t nuget-license
docker run -it -v projectPath:/tmp nuget-license -i /tmp -f /tmp --export-license-texts -l Verbose
where projectPath is the path of the project that you want to export the licenses.
You can also add the command parameters of the tool.
ex.
docker run -it -v ~/Projects/github/nuget-license:/tmp nuget-license -i /tmp -o --export-license-texts -l Verbose