Unclaimed project
Are you a maintainer of ILSpy ? Claim this project to take control of your public changelog and roadmap.
Claim this project Changelog
ILSpy .NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!
c-sharp decompile decompiler decompiler-engine dotnet dotnetcore +4
Last updated about 21 hours ago
© 2026 AnnounceHQ. All rights reserved.
Back to changelogNew July 24, 2025
ILSpy 10.0 Preview 1 This preview release is based on preview 6 of .NET 10.0 . Please make sure that you have it installed on your machine beforehand.
New Language Features
#3467: C# 12 InlineArrays
#3500: Added .NET 10 as test target
#3500: Added minimal language feature support to successfully detect new code patterns used in .NET 10
Enhancements
#3519: Add API diff feature. Please see the PR for how this feature works, and in the collapsed region at the end of the release notes how such an API diff report could look like (full file is attached to release as ICSharpCode.Decompiler9.1to10Preview1Changes_ApiDiff.md ).
#3494: Add dynamic ILSpy settings options to ILSpyCmd
#3489: Make WholeProjectDecompiler.CreateDecompiler protected virtual to make the decompilation pipeline extensible.
Contributions
Add configuration option to check for overflow and underflow (see #3484 by @ds5678)
Allow creating a MetadataFile with a MetadataReader / MetadataStringDecoder (see #3487 by @lordmilko)
Add an option to not transform Activator.CreateInstance<T>() to new T() (see #3497 by @DoctorKrolic)
TargetFramework and TargetServices APIs are now public (see #3501 by @nikitalita)
Support disassembling single file bundle for ILSpy (see #3398 by @cshung)
Fix stack overflow exception in CSharpResolver (see #3471 by @ds5678)
Handle explicit optional parameter after default parameter (see #3470 by @ds5678)
Fix disassembler output, correcting flag(NUM) to flags(NUM) (see #3473 by @hez2010)
Fix null reference exception when writing resource files (see #3474 by @ds5678)
Fix SDK-style (modern) inter-project references (see #3502 by @petercrabtree)
Fix incorrect method match for static methods with instance signature (see #3504 by @MSchmoecker)
Performance
#3486: Remove XML serialization from DecompilerSettings in ILSpy
Bug fixes
Fix #3464: Missing cast in interpolated string
Fix #3482: Drag and Drop is no longer working in the Assemblies tree view.
Fix #3492: Do not crash, if field used by RuntimeHelpers.InitializeArray is malformed.
And many other fixes, for a full list click here .
ICSharpCode.Decompiler Assembly Changes (API diff)
Changed Types
ICSharpCode.Decompiler.DecompilerSettings
| Member | Type | Operation |
|--------|------|-----------|
| Clone() : DecompilerSettings | Method | Removed |
| ParamsCollections : bool | Property | Added |
| UseObjectCreationOfGenericTypeParameter : bool | Property | Added |
| InlineArrays : bool | Property | Added |
| CheckForOverflowUnderflow : bool | Property | Added |
| Clone() : DecompilerSettings | Method | Added |
ICSharpCode.Decompiler.Solution.SolutionCreator
| Member | Type | Operation |
|--------|------|-----------|
| WriteSolutionFile(string, IEnumerable<ProjectItem>) : void | Method | Removed |
| WriteSolutionFile(string, List<ProjectItem>) : void | Method | Added |
ICSharpCode.Decompiler.Semantics.Conversion
| Member | Type | Operation |
|--------|------|-----------|
| InlineArrayConversion : Conversion | Field | Added |
ICSharpCode.Decompiler.TypeSystem.KnownAttribute
| Member | Type | Operation |
|--------|------|-----------|
| ParamCollection : KnownAttribute | Field | Added |
| InlineArray : KnownAttribute | Field | Added |
ICSharpCode.Decompiler.TypeSystem.TypeSystemOptions
| Member | Type | Operation |
|--------|------|-----------|
| ParamsCollections : TypeSystemOptions | Field | Added |
ICSharpCode.Decompiler.TypeSystem.TypeSystemExtensions
| Member | Type | Operation |
|--------|------|-----------|
| IsArrayInterfaceType(this IType) : bool | Method | Added |
| IsInlineArrayType(this IType) : bool | Method | Added |
| GetInlineArrayLength(this IType) : int? | Method | Added |
| GetInlineArrayElementType(this IType) : IType | Method | Added |
| | Method | |
IsDefaultValueAssignmentAllowed(this IParameter) : bool
Added
ICSharpCode.Decompiler.Metadata.MetadataFile | Member | Type | Operation |
|--------|------|-----------|
| MetadataFile(MetadataFileKind, string, MetadataReaderProvider, MetadataReaderOptions, int, bool) | Constructor | Removed |
| MetadataFile(MetadataFileKind, string, MetadataReaderProvider, MetadataReaderOptions, int, bool, MetadataStringDecoder?) | Constructor | Added |
| MetadataFile(MetadataFileKind, string, MetadataReader, int, bool) | Constructor | Added |
ICSharpCode.Decompiler.Metadata.PEFile | Member | Type | Operation |
|--------|------|-----------|
| PEFile(string, PEStreamOptions, MetadataReaderOptions) | Constructor | Removed |
| PEFile(string, Stream, PEStreamOptions, MetadataReaderOptions) | Constructor | Removed |
| PEFile(string, PEReader, MetadataReaderOptions) | Constructor | Removed |
| PEFile(string, PEStreamOptions, MetadataReaderOptions, MetadataStringDecoder?) | Constructor | Added |
| PEFile(string, Stream, PEStreamOptions, MetadataReaderOptions, MetadataStringDecoder?) | Constructor | Added |
| PEFile(string, PEReader, MetadataReaderOptions, MetadataStringDecoder?) | Constructor | Added |
ICSharpCode.Decompiler.IL.OpCode | Member | Type | Operation |
|--------|------|-----------|
| LdElemaInlineArray : OpCode | Field | Added |
ICSharpCode.Decompiler.IL.Block | Member | Type | Operation |
|--------|------|-----------|
| GetContainingStatement(ILInstruction) : ILInstruction? | Method | Added |
ICSharpCode.Decompiler.IL.ILInstruction | Member | Type | Operation |
|--------|------|-----------|
| Extract(ILTransformContext) : ILVariable | Method | Removed |
| MatchLdElemaInlineArray(out IType?, out ILInstruction?) : bool | Method | Added |
| Extract(ILTransformContext) : ILVariable? | Method | Added |
ICSharpCode.Decompiler.CSharp.LanguageVersion | Member | Type | Operation |
|--------|------|-----------|
| CSharp13_0 : LanguageVersion | Field | Added |
ICSharpCode.Decompiler.CSharp.OutputVisitor.InsertParenthesesVisitor | Member | Type | Operation |
|--------|------|-----------|
| VisitInterpolation(Interpolation) : void | Method | Added |
ICSharpCode.Decompiler.CSharp.ProjectDecompiler.IProjectInfoProvider | Member | Type | Operation |
|--------|------|-----------|
| CheckForOverflowUnderflow : bool | Property | Added |
Added Types
ICSharpCode.Decompiler.IL.LdElemaInlineArray | Member | Type | Operation |
|--------|------|-----------|
| ArraySlot : SlotInfo | Property | Added |
| IndicesSlot : SlotInfo | Property | Added |
| Type : IType | Property | Added |
| Array : ILInstruction | Property | Added |
| Indices : InstructionCollection<ILInstruction> | Property | Added |
| ResultType : StackType | Property | Added |
| IsReadOnly : bool | Property | Added |
| DirectFlags : InstructionFlags | Property | Added |
| LdElemaInlineArray(IType, ILInstruction, params ILInstruction[]) | Constructor | Added |
| Clone() : ILInstruction | Method | Added |
| WriteTo(ITextOutput, ILAstWritingOptions) : void | Method | Added |
| AcceptVisitor(ILVisitor) : void | Method | Added |
| AcceptVisitor<T>(ILVisitor<T>) : T | Method | Added |
| AcceptVisitor<C,T>(ILVisitor<C,T>, C) : T | Method | Added |
ICSharpCode.Decompiler.CSharp.ProjectDecompiler.TargetFramework | Member | Type | Operation |
|--------|------|-----------|
| Identifier : string | Property | Added |
| Moniker : string | Property | Added |
| VersionString : string | Property | Added |
| VersionNumber : int | Property | Added |
| Profile : string | Property | Added |
| IsPortableClassLibrary : bool | Property | Added |
| TargetFramework(string, int, string) | Constructor | Added |
ICSharpCode.Decompiler.CSharp.ProjectDecompiler.TargetServices | Member | Type | Operation |
|--------|------|-----------|
| DetectTargetFramework(MetadataFile) : TargetFramework | Method | Added |
| GetPlatformName(PEFile) : string | Method | Added |
| DetectTargetFrameworkNET20(MetadataFile, IAssemblyResolver, TargetFramework) : TargetFramework | Method | Added |