Decompile .NET DLL assemblies back to a C# project.
Drag and drop your .dll file or click to browse.
ILSpy converts CIL bytecode back to C# source code.
Explore namespaces, classes, and methods online.
DLL stands for Dynamic Link Library. It is a file format used on Windows for shared libraries — code modules that can be loaded and used by multiple programs at the same time. DLLs allow code reuse and modular application architecture.
In the .NET ecosystem, DLLs are the primary way to distribute class libraries, frameworks, and reusable components. Every NuGet package you install, every .NET Standard library, and every class library project compiles to a DLL file.
There are two fundamentally different types of DLL files:
.NET DLLs contain CIL bytecode along with extensive metadata: type definitions, method signatures, field declarations, custom attributes, and assembly references. This metadata is far richer than what native code retains, which is why .NET decompilation produces much better results.
ILSpy reads the PE (Portable Executable) headers, parses the .NET metadata tables, and reconstructs high-level C# source code from the CIL bytecode. The output includes proper type inference, reconstructed LINQ expressions, async/await patterns, and other modern C# features.
A DLL (Dynamic Link Library) is a shared library file used on Windows. It contains code and data that can be used by multiple programs simultaneously. .NET DLLs contain CIL bytecode and can be decompiled back to C# or VB.NET source code.
Only .NET DLL files can be decompiled to high-level source code. Native DLLs compiled from C or C++ contain machine code that can only be disassembled. This tool handles .NET DLLs.
Yes. NuGet packages contain .NET DLL assemblies. You can extract the DLL from the .nupkg file (which is a ZIP archive) and upload it to this tool to view the decompiled source code.