NuGet Package Viewer and NUPKG Extractor
Open a NuGet package, explore its frameworks and read recovered C# in one result.
Open NUPKG online
Upload a .nupkg to inspect its contents without installing the package or manually extracting DLLs. Processing runs on our servers. The viewer reads package metadata from your upload; it does not contact nuget.org, restore dependencies or execute package code.
Package → manifest and framework → DLL → C#
Start with NUGET-SUMMARY.txt for the package id, version, authors, description, declared dependencies grouped by target framework and available asset folders. Open files/Example.nuspec for the original manifest, then browse each framework's assembly and its recovery output:
Example.nupkg/ NUGET-SUMMARY.txt nuget.json files/Example.nuspec files/lib/net8.0/Example.dll files/lib/netstandard2.0/Example.dll recovered/lib/net8.0/Example.dll/source.cs recovered/lib/netstandard2.0/Example.dll/source.cs
Equal DLL names in different framework folders remain separate. The summary links each assembly path to its C# output; identical payloads may share a recovery result. Download individual original members or the complete result ZIP. Supported nested packages use the same extraction and recovery budget.
What a NuGet decompiler can recover
The NUPKG extractor preserves lib/, ref/, runtimes/, tools/, analyzers, content and build files. ILSpy recovers C# from supported managed assemblies. Reference assemblies contain API declarations and stubs, not implementation logic. Native libraries and AOT-only binaries do not yield original C#.
Dependency-only and content-only packages still provide useful metadata and files. Build targets, props, PowerShell scripts and tool payloads are displayed as data and never run. Signature files are preserved; cryptographic signature verification is not performed.
Limits and partial results
Missing dependencies, obfuscation and unsupported IL can limit recovery. A missing decompiler or a failed assembly leaves extracted files and successful siblings available. See DECOMPILATION-NOTES.txt for details. Each package shares a five-minute parent budget, up to 1 GiB expanded data, 256 MiB per file, 25,000 entries and four nested layers. An individual NuGet assembly gets up to 30 seconds; worker limits can stop processing sooner.
This release supports ZIP-based .nupkg packages with a bounded root manifest, including renamed valid packages where dispatch permits. Metadata is limited to 1 MiB. ZIP64, split archives, .snupkg and legacy symbol packages are outside this release. Package editing, repacking, installation, dependency restoration and package-to-package diff are not provided.
For a standalone assembly, use the DLL decompiler or EXE decompiler. To compare two DLLs, download the matching implementation DLL from the same target framework in each package and upload those two DLLs to the comparison tool.