DependencyGraph.Core
0.2.0
This package has a SemVer 2.0.0 package version: 0.2.0+28.
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package DependencyGraph.Core --version 0.2.0
NuGet\Install-Package DependencyGraph.Core -Version 0.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DependencyGraph.Core" Version="0.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DependencyGraph.Core" Version="0.2.0" />
<PackageReference Include="DependencyGraph.Core" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DependencyGraph.Core --version 0.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DependencyGraph.Core, 0.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DependencyGraph.Core@0.2.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DependencyGraph.Core&version=0.2.0
#tool nuget:?package=DependencyGraph.Core&version=0.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
About
Allows you to create dependency graphs for .NET SDK-style projects. The most notable difference to other libraries providing such functionality is that dotnet-dependency-graph also includes transitive dependencies, thus creating a complete dependency graph.
Usage
// read project lock file (project.assets.json)
var lockFileFormat = new LockFileFormat();
var lockFile = lockFileFormat.Read("project.assets.json", NullLogger.Instance);
// create dependency graph
var dependencyGraphFactory = new DependencyGraphFactory();
var graph = dependencyGraphFactory.FromLockFile(lockFile);
// print dependency graph to the console
var visualizer = new ConsoleDependencyGraphVisualizer(new ConsoleDependencyGraphVisualizerOptions());
await visualizer.VisualizeAsync(graph);
// create DGML file for the dependency graph
visualizer = new DgmlDependencyGraphVisualizer(new DgmlDependencyGraphVisualizerOptions { OutputFilePath = "graph.dgml" })
await visualizer.VisualizeAsync(graph);
// exclude dependencies starting with "Microsoft" or "System"
graph = dependencyGraphFactory.FromLockFile(lockFile, excludes: ["Microsoft.*", "System.*"]);
// only include dependencies starting with "YourCompany"
graph = dependencyGraphFactory.FromLockFile(lockFile, includes: ["YourCompany.*"]);
// limit the graph depth
graph = dependencyGraphFactory.FromLockFile(lockFile, maxDepth: 2);
// modify console visualizer options
var consoleVisualizerOptions = new ConsoleDependencyGraphVisualizerOptions
{
IndentSize = 4, // specifiy indentation
Renderer = graphNode => graphNode.ToString(), // modify how the text for a graph node gets rendered
GetForegroundColor = // modify foregorund color
(graphNode, currentColor) => graphNode switch
{
ProjectDependencyGraphNode => ConsoleColor.Cyan,
PackageDependencyGraphNode => ConsoleColor.DarkMagenta,
_ => currentColor
},
GetBackgroundColor = // modify background color
(graphNode, currentColor) => currentColor
};
// modify DGML visualizer options
var dgmlVisualizerOptions = new DgmlDependencyGraphVisualizerOptions
{
OutputFilePath = "graph.dgml", // specify output file
Categories = // specify categories for the graph nodes
[
new DirectedGraphCategory
{
Id = "DefaultCategory",
Stroke = "Black",
Background = "DarkOrange"
}
],
AssignCategory = graphNode => "DefaultCategory" // assign a node to a category
};
For example outputs please see README.md of the dotnet tool.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- NuGet.ProjectModel (>= 6.8.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.