To inspect and debug your .NET dependencies, you must use a combination of static dependency analysis tools, runtime diagnostics, and debugger configurations to trace how assemblies are resolved, loaded, and executed. Managing both direct NuGet packages and indirect, transitive dependencies is a core skill for solving compilation errors and version conflicts. đ 1. Inspecting the Dependency Graph (Static Analysis)
Before running code, you can use several tools to analyze what your application relies on and visualize complex dependency trees.
dotnet-inspect CLI: A powerful modern tool by â Rich Lander on GitHub that explores NuGet metadata, validates frameworks, and emits Mermaid diagrams of your dependency graphs.
ILSpy: The industry-standard free, open-source decompiler. Drag and drop any .dll file into â ILSpy to check its internal architecture, exact target framework, and external references.
NuGet Package Explorer: Ideal for inspecting raw .nupkg manifests online or locally to see exactly which framework folders (like net8.0) are bundled inside.
MSBuild Graph Generation: Run dotnet msbuild /t:GenerateRestoreGraphFile /p:RestoreGraphOutputPath=graph.dg to produce a comprehensive JSON hierarchy mapping every project-to-project and transitive dependency.
âď¸ 2. Step-by-Step Debugging Into Third-Party Assemblies
If an exception originates inside a NuGet package or the .NET runtime itself, you can configure your IDE to step directly into that code. Reddit¡r/csharp
Leave a Reply