Nuget Acknowledgements Exporter

NugetAcknowledgementExporter

Small tool responsible for extracting licenses from NuGet packages included in .NET projects.

Usage of Third-Party Libraries usually requires to include licenses within an application. This command-line tool can be used for auto-generating the “Acknowledgement” / “Third-Party Libraries” page in your project.

NugetAcknowledgementsExporter finds all CSPROJs in a directory from the argument, extracts all included NuGet packages and downloads their licenses. Based on gained data it builds two files:

  • acknowledgements.txt – text file containing all acknowledgements for NuGet packages. It could be directly included within your application in a scrollable text field.
  • project_packages.json – JSON file containing an array of used NuGet packages including downloaded licenses. It could be used to build a more interesting UI for acknowledgements, generated from code based on this file.

Features:

  •  Detecting *.csproj files recursively in project’s directory
  •  Extracting NuGet packages from *.csproj
  •  Extracting NuGet packages from packages.json
  •  Grouping packages with the same authors, projectUrl and licenseUrl
  •  Downloading licenses from licenseUrl (included in NuGet nuspec file)
  •  Adding custom licenses (edit file: licenses/licenses.json)
  •  Excluding packages (edit file: licenses/exclude.json)
  •  Including custom packages (edit file: licenses/include.json)
  •  Windows and MacOS support

Requirements:

  • .NET Core (download)
  • NuGet command-line tool:
    Windows: download (+ add to PATH)
    MacOS: brew install nuget