
Description
A third party DLL throws, the stack trace points inside one of its methods, and there is no source and no PDB. You either guess or you take it apart. ILSpy is the tool that takes it apart: open any .NET assembly, get namespaces, types and members as a tree on the left, and on the right the IL turned back into readable C#, with compiler generated async state machines, lambda closures and iterators reconstructed close to how they were written.
Besides C# it renders IL, a side by side IL and C# view, and Visual Basic. Metadata, resources and embedded files all expand, and search finds types and members across every loaded assembly. When you actually need to change something, Save as Project exports the whole assembly as a solution Visual Studio can open.
It is an ICSharpCode open-source project under MIT. The portable zip runs from any folder, and an MSI and a Visual Studio extension are also published. It needs a .NET runtime on the machine.
Assembly browser: Namespaces, types, methods and fields of a DLL or EXE as an expandable tree.
Decompile to C#: IL reconstructed as readable C#, handling async/await, lambdas and yield iterators correctly.
Multiple outputs: Switch between C#, IL, a combined IL and C# view, and Visual Basic.
Metadata and resources: Inspect the assembly manifest, attributes, embedded resources and debug information.
Cross assembly search: Search types and members across every loaded assembly.
Save as project: Export a whole assembly as a project that opens in Visual Studio.
Portable: Unzip and run, with an MSI installer and a Visual Studio extension also available.
Besides C# it renders IL, a side by side IL and C# view, and Visual Basic. Metadata, resources and embedded files all expand, and search finds types and members across every loaded assembly. When you actually need to change something, Save as Project exports the whole assembly as a solution Visual Studio can open.
It is an ICSharpCode open-source project under MIT. The portable zip runs from any folder, and an MSI and a Visual Studio extension are also published. It needs a .NET runtime on the machine.
Features
Assembly browser: Namespaces, types, methods and fields of a DLL or EXE as an expandable tree.
Decompile to C#: IL reconstructed as readable C#, handling async/await, lambdas and yield iterators correctly.
Multiple outputs: Switch between C#, IL, a combined IL and C# view, and Visual Basic.
Metadata and resources: Inspect the assembly manifest, attributes, embedded resources and debug information.
Cross assembly search: Search types and members across every loaded assembly.
Save as project: Export a whole assembly as a project that opens in Visual Studio.
Portable: Unzip and run, with an MSI installer and a Visual Studio extension also available.
