dotnet nuget why
This article applies to: ✔️ .NET 8.0.4xx SDK and later versions
Name
dotnet nuget why
- Shows the dependency graph for a particular package.
Synopsis
dotnet nuget why <PROJECT|SOLUTION> <PACKAGE> [-f|--framework <FRAMEWORK>]
dotnet nuget why -h|--help
Description
The dotnet nuget why
command shows the dependency graph for a particular package for a given project or solution.
Starting from the .NET 9 SDK, it's possible to pass a NuGet assets file in place of the project file, in order to use the command with projects that can't be restored with the .NET SDK.
First, restore the project in Visual Studio, or msbuild.exe
.
By default the assets file is in the project's obj\
directory, but you can find the location with msbuild.exe path\to\project.proj -getProperty:ProjectAssetsFile
.
Finally, run dotnet nuget why path\to\project.assets.json SomePackage
.
Arguments
PROJECT|SOLUTION
The project or solution file to operate on. If a directory is specified, the command searches the directory for a project or solution file. If more than one project or solution is found, an error is thrown.
PACKAGE
The package name to look up in the dependency graph.
Options
-f|--framework <FRAMEWORK>
The target framework(s) for which dependency graphs are shown. You can pass multiple
--framework
options to see graphs for more than one framework.
-?|-h|--help
Prints out a description of how to use the command.
Examples
Show the dependency graph for the package "System.Text.Json" for a given solution:
dotnet nuget why .\DotnetNuGetWhyPackage.sln System.Text.Json
Show the dependency graph for the package "System.Text.Json" for a single project:
dotnet nuget why .\DotnetNuGetWhyPackage.csproj System.Text.Json
Show the dependency graph for a specific target framework:
dotnet nuget why .\DotnetNuGetWhyPackage.csproj System.Text.Json --framework net6.0