Pre-release

@christophwille christophwille released this Aug 13, 2018 · 1 commit to master since this release

Assets 4

Beta 1 Release Notes apply to Beta 2, additionally:

Improved Pattern Detection

  • Expression Trees: Multiple levels of nesting are now supported better

Misc

  • CreateCecilObjectModel: extension method to help plugin writers porting their plugins to ILSpy 4.0
  • IAmbience API revived: If you want to nicely print type names or member signatures in C# style, you can now use CSharpAmbience
  • "Open containing folder" and "Open command line here" added to Assembly tree nodes.

Improvements & Bugfixes

  • Local functions: Code is no longer hidden if local functions are used in the code, as long as they're not decompled correctly. Note that this might still lead to compile errors, if anonymous types or lambdas are used in the local functions.
Pre-release

@christophwille christophwille released this Aug 1, 2018 · 33 commits to master since this release

Assets 4

We want to thank all contributors, who provided fixes in this release: @Chicken-Bones, @ashmind and @cshung!
And we want to thank all testers, who provided feedback and tested very thoroughly, especially @greenozon, @mmusu3 and @tamlin-mike for their ongoing support!

New Language Features

  • C# 1.0/2.0 overloaded &&/|| operators
  • C# 4.0 optional arguments
  • C# 7.1 reference assemblies: ILSpy will show a warning if you are looking at a reference assembly
  • C# 7.2 non-trailing named arguments

Improved Pattern Detection

  • C# 6.0 string interpolation with FormattableString/IFormattable

Misc

  • Experimental PDBgen (no lambda support, no yield/async state machines; very basic C#)
  • New IAnalyzer API
  • Added IDocumentationProvider: allows providing XML doc comments from custom sources
  • Added IDebugInfoProvider: allows providing debug info (variable names and sequence points)

Contributions

  • Chicken-Bones: Improved block ordering in ConditionDetection (#1218)
  • ashmind: Decimal constant improvements (#1236)
  • cshung: Bug fix for #1224 (#1243)

Improvements & Bugfixes

  • Decompilation of invalid IL
  • Improved decompilation of C++/CLI constructs
  • Improved stability of analyzers

Architectural Changes

For ILSpy 4 we replace Mono.Cecil with System.Reflection.Metadata. The wiki entry on SRM deals at length with information that is important to addin writers, the background story and some of the performance/memory improvements you as a user of ILSpy can expect.

Our goal for this version given the underlying architectual changes is as follows: "As good or better as ILSpy 3.2 in terms of decompilation quality, stability, performance and memory usage."

Pre-release

@christophwille christophwille released this Jul 23, 2018 · 93 commits to master since this release

Assets 3

Technical details for this first release of ILSpy 4.0 are available in a dedicated page in our wiki: SRM deals at length with information that is important to addin writers, the background story and some of the performance/memory improvements you as a user of ILSpy can expect.

Our goal for this version given the underlying architectual changes is as follows: "As good or better as ILSpy 3.2 in terms of decompilation quality, stability, performance and memory usage."

Therefore we ask you to compare the last released production version with this Alpha 1 - we are confident that even at this early stage we match the quality in decompilation. If not, please do open an issue (sample assemblies very much appreciated!)

@christophwille christophwille released this Jul 1, 2018 · 3 commits to 3.2.x since this release

Assets 3

Security Advisory

Resource Deserialization Security Vulnerability If you are using an older version, please update immediately! (especially if the assemblies you decompile are untrustworthy). Note that the integration in Visual Studio via Roslyn is not affected.


The Visual Studio addin is now available on the marketplace, the Decompiler engine as usual via NuGet.

New Language Features

  • C# 4.0 Dynamic binding
  • C# 4.0 Named arguments
  • C# 7.0 Tuple types
  • C# 7.3 Attributes on backing fields of properties

Improved Pattern Detection

  • C# 1.x switch-on-string
  • Compound assignments for user-defined operators
  • Improved decompilation of collection initializers

Improvements in TypeSystem

  • Distinguish between unkown type and no type.
  • Dead code removal

Misc

  • Rewrite of ILSpy.AddIn
  • Improved decompilation of Windows Forms assemblies
  • Search results now use a ListView with two columns, search results can be sorted by clicking on the header.
  • Updated pattern detection for changes in Roslyn 2.8
  • Improved control-flow decompilation of conditional statements (special thanks to @Chicken-Bones #1176 )
  • Upgrade to Mono.Cecil 0.10.0

@christophwille christophwille released this Jun 24, 2018 · 474 commits to master since this release

Assets 4

For major new features in 3.2, please see the Beta announcement https://github.com/icsharpcode/ILSpy/releases/tag/v3.2-beta. Here we list only the changes from Beta -> RC.

Contributions

  • Improved control-flow decompilation of conditional statements (special thanks to @Chicken-Bones #1176 )
  • Search engine partial name match (special thanks to @TheOneAmir #1119 )

Improvements & Bugfixes

  • Improved stability of ILSpy.AddIn
  • Avoid ambiguities when referring to Attribute types in attribute context
  • Improved decompilation of Windows Forms assemblies
  • Improved code generation when using generic methods (emit fewer casts, if possible)
  • Support for extension 'Add' methods in collection initializers (forgotten C# 6.0 feature)
  • Improved decompilation of collection initializers
  • Use overload resolution to ensure we call the correct indexer accessor methods
  • Streamlined decompilation of enum value declarations
  • ... as well as other minor fixes

@christophwille christophwille released this Jun 11, 2018 · 511 commits to master since this release

Assets 4

The Visual Studio addin beta is only available here, not on the marketplace - it has been completely rewritten, please test the "Open in ILSpy" feature extensively (works on project explorer nodes such as references and Nuget packages as well as inside the text editor).

New Language Features

  • C# 4.0 Dynamic binding
  • C# 4.0 Named arguments
  • C# 7.0 Tuple types
  • C# 7.3 Attributes on backing fields of properties

Improved Pattern Detection

  • C# 1.x switch-on-string
  • Compound assignments for user-defined operators

Improvements in TypeSystem

  • Distinguish between unkown type and no type.
  • Dead code removal

Misc

  • Rewrite of ILSpy.AddIn
  • Search results now use a ListView with two columns, search results can be sorted by clicking on the header.
  • Updated pattern detection for changes in Roslyn 2.8
  • Upgrade to Mono.Cecil 0.10.0
  • Various smaller bug fixes and stability improvements

@christophwille christophwille released this Apr 8, 2018 · 668 commits to master since this release

Assets 3

Standalone decompiler can be downloaded directly here, the VS2017 addin and decompiler NuGet are available at the respective locations.

New Language Features

  • C# 7.2 private protected (contributed)
  • C# 7.2 conditional ref
  • C# 7.1 async Main (contributed)
  • C# 7.0 out variables
  • C# 7.0 ref returns and locals
  • C# 6.0 string interpolation
  • C# 6.0 await in catch / finally
  • C# 6.0 expression-bodied members
  • C# 6.0 null propagator (null-conditional operator, succinct null checking)

Improved Mono mcs Codegen (following areas)

  • switch
  • lock
  • foreach
  • LINQ
  • Delegate construction

Test Infrastructure Improvements

  • Support for mcs
  • Support for vbc

Improvements in TypeSystem

  • Lazy-loading for nested types
  • Add metadata tokens to type system
  • Remove dead code

Misc

  • UI: Switch to VS MEF (contributed)
  • General/UI: Language version selection
  • VSIX: drop VS 2015 support
  • Updated pattern detection for changes in Roslyn 2.7
  • Refactored ILSpy.AddIn

Bug Fixes for Roslyn

@christophwille christophwille released this Mar 28, 2018 · 675 commits to master since this release

Assets 3

Fixes for mcs

  • LINQ
  • Delegate construction

Misc

  • Updated pattern detection for changes in Roslyn 2.7
  • Refactored ILSpy.AddIn

Improvements in TypeSystem

  • Lazy-loading for nested types (needs testing)
  • Add metadata tokens to type system
  • Remove dead code

Bug Fixes for Roslyn

@christophwille christophwille released this Mar 12, 2018 · 721 commits to master since this release

Assets 4

New Language Features

  • C# 7.2 private protected (contributed)
  • C# 7.2 conditional ref
  • C# 7.1 async Main (contributed)
  • C# 7.0 out variables
  • C# 7.0 ref returns and locals
  • C# 6.0 string interpolation
  • C# 6.0 await in catch / finally
  • C# 6.0 expression-bodied members
  • C# 6.0 null propagator (null-conditional operator, succinct null checking)

Improved Mono mcs Codegen (following areas)

  • switch
  • lock
  • foreach

Test Infrastructure Improvements

  • Support for mcs
  • Support for vbc

Misc

  • UI: Switch to VS MEF (contributed)
  • General/UI: Language version selection
  • VSIX: drop VS 2015 support
Assets 2

The release 3.0.2 has two improvements for downstream consumers of ICS.Decompiler:

  • TFM net45 support, see #1033
  • Decompiling types without method bodies, see #1032

For 3.0.1, there was only one improvement: GetCecil visibility, see #1028

Binaries are on NuGet.