Understand implementation details of .NET code by decompiling assemblies. Use when the user wants to see how a .NET API works internally, inspect NuGet package source, view framework implementation, or understand compiled .NET binaries.
View on GitHubskills/ilspy-decompile/SKILL.md
February 1, 2026
Select agents to install to:
npx add-skill https://github.com/davidfowl/dotnet-skillz/blob/main/skills/ilspy-decompile/SKILL.md -a claude-code --skill ilspy-decompileInstallation paths:
.claude/skills/ilspy-decompile/# .NET Assembly Decompilation with ILSpy Use this skill to understand how .NET code works internally by decompiling compiled assemblies. ## Quick start ```bash # Decompile an assembly to stdout (no install needed with .NET 10+) dnx ilspycmd MyLibrary.dll # Decompile to an output folder dnx ilspycmd -o output-folder MyLibrary.dll ``` ## Common .NET Assembly Locations ### NuGet Packages ```bash # Windows ~/.nuget/packages/<package-name>/<version>/lib/<tfm>/ # Example: Newtonsoft.Json ~/.nuget/packages/newtonsoft.json/13.0.3/lib/netstandard2.0/Newtonsoft.Json.dll # Example: Microsoft.Extensions.DependencyInjection ~/.nuget/packages/microsoft.extensions.dependencyinjection/8.0.0/lib/net8.0/Microsoft.Extensions.DependencyInjection.dll ``` ### .NET Runtime Libraries ```bash # Find .NET install location dotnet --list-runtimes # Windows typical paths C:/Program Files/dotnet/shared/Microsoft.NETCore.App/<version>/ C:/Program Files/dotnet/shared/Microsoft.AspNetCore.App/<version>/ # Linux/macOS typical paths /usr/share/dotnet/shared/Microsoft.NETCore.App/<version>/ /usr/share/dotnet/shared/Microsoft.AspNetCore.App/<version>/ # Example: System.Text.Json from runtime C:/Program Files/dotnet/shared/Microsoft.NETCore.App/8.0.0/System.Text.Json.dll ``` ### .NET SDK Reference Assemblies ```bash # Find SDK location dotnet --list-sdks # Reference assemblies (design-time facades) C:/Program Files/dotnet/packs/Microsoft.NETCore.App.Ref/<version>/ref/net8.0/ ``` ### Project Build Output ```bash # Debug build ./bin/Debug/net8.0/<AssemblyName>.dll # Published output ./bin/Release/net8.0/publish/<AssemblyName>.dll ``` ## Core workflow 1. Identify what you want to understand (API, class, method) 2. Locate the assembly containing that code 3. Use `dnx ilspycmd -l class` to find the exact type name 4. Decompile the specific type with `-t` ## Commands ### Basic Decompilation ```bash # Decompile to stdout dnx ilspycmd MyLibrary.dll # Decompile to output directory dnx ilspy