Skip to content

nexB/nuget-inspector

Repository files navigation

nuget-inspector - inspect nuget and .NET projects packages dependencies

Homepage: https://github.com/nexB/nuget-inspector and https://www.aboutcode.org/

nuget-inspector is a utility to:

  • resolve .NET project nuget packages dependencies
  • parse various project and package manifests and lockfiles such as .csproj files, and several related formats (including legacy formats)
  • query NuGet.org APIs for package information to support dependency resolution

It grew out of the need to have a reliable way to analyze .NET code projects and their dependencies independently of the availability of a dotnet SDK installed on the machine that runs this analysis; and that could run on Linux, Windows and macOS.

The goal of nuget-inspector is to be a comprehensive tool that can handle every style of .NET and NuGet projects and package layouts, manifests and lockfiles.

WARNING! this tool is under heavy development and its CLI options and output format are evolving quickly.

Usage

For instance, you can fetch nuget-inspector own project file at:

https://raw.githubusercontent.com/nexB/nuget-inspector/main/src/nuget-inspector/nuget-inspector.csproj

And then run:

nuget-inspector --project-file nuget-inspector.csproj --json nuget-inspector.json

And review the nuget-inspector.json JSON output file with its resolved dependencies. Note that the output data structure is evolving and not final.

License

Copyright (c) nexB Inc. and others.

Copyright (c) the .NET Foundation, Microsoft and others.

Portions Copyright (c) 2018 Black Duck Software, Inc.

Portions Copyright (c) Mario Rivis https://github.com/dxworks

Portions Copyright (c) 2016 Andrei Marukovich https://github.com/Dropcraft/Dropcraft

SPDX-License-Identifier: Apache-2.0 AND MIT

This project is based on, depends on or embeds several fine libraries and tools. Here are credits for some of these key projects without which it would not exist:

These projects are used either in the built executables, at build time or for testing (a large number are used for testing). The built executables are designed to be self-contained exes that do not require additional libraries to run on the target system, beyond a dotnet SDK.