воскресенье, 20 февраля 2022 г.

CIL Tools update 2.4

 A new CIL Tools update is released. The update contains a new project, CilTools.CommandLine, as well as some changes and fixes to existing projects.

Download on GitHub releases

Changes in the new version:

General

  • New project: CilTools.CommandLine

CilTools.BytecodeAnalysis

  • Add support for including bytecode size and source code lines in disassembler output
  • Add support for .entrypoint directive
  • Add support for generic constraints
  • Add support for properties in disassembler
  • Add ICustomMethod interface as a base for custom method implementations to replace CustomMethod base class. This means that custom method implementations can now be derived from MethodInfo or ConstructorInfo.
  • Improve generics support. Generic context is now passed correctly to generic parameter types is more cases; this enables getting generic parameter names and their declaring methods/types.
  • Fix TypeSpec.IsGenericParameter for byrefs
  • Fix ldtoken syntax for methods
  • Fix string literal escaping in disassembler to use ECMA-335 rules

CilTools.Runtime

  • Update custom method implementations to derive from MethodInfo/ConstructorInfo and implement ICustomMethod

CIL View

  • Add support for opening C#/VB code and MSBuild projects
  • Add Show source support
  • Add options to include bytecode size and source code lines (from PDB) in disassembler output
  • Add support for opening IL source files
  • Add support for .entrypoint directive
  • Add Export type to file menu command
  • Add support for generic constraints
  • Add support for disassembling properties
  • Add support for interactive method execution
  • Use .NET Core runtime directory when resolving dependencies for .NET Core assemblies
  • Use runtime directory of the inspected process instead of current runtime directory for assembly resolution when opening a process
  • Load assembly images from memory instead of files when opening a process
  • When an assembly contains a single type, automatically navigate to that type
  • When the type contains only one non-constructor method and no other members (like fields), automatically navigate to that single method when type is selected
  • Change member identifier color to more visible with lower brightness
  • Fix ldtoken syntax for methods
  • Fix string literal escaping in disassembler to use ECMA-335 rules