| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| ILSpy_Installer_9.1.0.7988-x64.msi | 2025-04-22 | 4.0 MB | |
| ILSpy_Installer_9.1.0.7988-arm64.msi | 2025-04-22 | 4.0 MB | |
| ILSpy.AddIn.VS2022_9.1.0.7988.vsix | 2025-04-22 | 11.9 MB | |
| ILSpy.AddIn.VS2017-2019_9.1.0.7988.vsix | 2025-04-22 | 5.3 MB | |
| ILSpy_selfcontained_9.1.0.7988-x64.zip | 2025-04-22 | 72.2 MB | |
| ILSpy_binaries_9.1.0.7988-x64.zip | 2025-04-22 | 4.1 MB | |
| ILSpy_binaries_9.1.0.7988-arm64.zip | 2025-04-22 | 4.9 MB | |
| ILSpy 9.1 source code.tar.gz | 2025-04-21 | 2.2 MB | |
| ILSpy 9.1 source code.zip | 2025-04-21 | 3.8 MB | |
| README.md | 2025-04-21 | 3.3 kB | |
| Totals: 10 Items | 112.3 MB | 24 | |
ILSpy 9.x is based on .NET 8.0. All artifacts except the self-contained distribution are built framework-dependent, which means .NET 8.0.x or later must be installed prior to starting ILSpy. Note that ILSpy 9.1 also allows a later runtime via [#3391].
New Language Features
- Update pattern-detection to Roslyn 4.13
Enhancements
- [#1572]: Do not generate variable names that match C# keywords.
- [#2716]: Add an option to allow sorting custom attributes
- [#3377]: Extend error information if multiple assemblies with the same (short) name are selected when creating a solution file.
- [#3393]: Option to turn off smooth scrolling
- [#3399]: Add module filename as ToolTip of AnalyzerEntityTreeNode
- [#3440]: Added support for evaluation-order-preserving reference type check
- [#3316]: Add "variable scopes" to improve naming local variables and anonymous method parameters
Contributions
- Add support for array initialization based on
RuntimeHelpers.CreateSpan<T>(see [#3380] by @ds5678) - Load resource stream outside of delegate (see [#3389] by @snorrk)
- Allow ILSpy to launch, when net8.0 is not installed, but a later version (see [#3391] by @nil4)
- Fix nested namespace directories (see [#3449] by @ds5678)
- Fix [#3402]: System.NullReferenceException on right click on .NET 9 (see [#3403] by @tom-englert)
- Add an option to turn off smooth scrolling (see [#3405] by @tom-englert)
- Use type hint in pointer arithmetic (see [#3413] by @ds5678)
- Improve UI for primary constructors on non-record types (see [#3455] by @ds5678)
- Fix exception when writing resx files without adding any resources (see [#3418] by @jwfx)
- Enhance null handling in switch transformations (see [#3422] by @ds5678)
- Don't include generic constraints in generated explicit overrides (see [#3443] by @ds5678)
- Improve generation of not equals check (see [#3425] by @ElektroKill)
Bug fixes
- Fix [#2269]: LocalFunctionDecompiler misplaces nested local functions in ctors
- Fix [#3322]: Add missing checks for equality comparison
- Fix [#3378]: Navigation shortcuts (Alt-Left and Alt-Right) don't work when TreeView has focus
- Fix [#3381]: Make sure that selectedNode is still selected when focus is deferred in IsActive property changed handler.
- Fix [#3383]: more aggressively transform object initializers on structs
- Fix [#3384]: add special case for null-literal conversions in optional argument handling.
- Fix [#3385]: Allow address uses of structs in using transform, if the reference is passed to an in parameter.
- Fix [#3392]: uses of init-setters must use object-initializer syntax.
- Fix [#3401]: Multiple problems when exporting an assembly as project
- Fix [#3414]: Apply latest session settings before saving upon closing the main window
- Fix [#3342]: Wrong null check in MethodVirtualUsedByAnalyzer
- Fix [#3450]: Fix "Clear assembly list" not actually persistent.
- Fix [#3432]: Do not include delegate construction use-sites in DetermineCaptureAndDeclarationScopes.
- Fix attributes tooltip of GenericParam metadata table
And many other fixes, for a full list click here.