Skip to content

KLIM8D/AsmDiff.NET

Repository files navigation

AsmDiff.NET

This tool is for comparing .NET assemblies between different versions of the assemblies. It was developed to generate a report of what have changed between two releases of a software product. This can be useful if you have external components depending on your library, and you want to catch the breaking changes before disaster strikes.

AsmDiff.NET is able to scan for

  • Additions
    • New properties added
    • New classes added
  • Changes
    • Renamed properties
    • Changed datatypes
  • Deletions
    • Removed classes
    • Removed properties

Install

The application is a single binary file and a folder containing the HTML template.

You can find the latest release under the release tab above.

Build dependencies

Reports

The outputformat of the report are either in HTML or JSON, which you are able to specify from one of the command arguments. Be default there are two color themes, a dark and a light one. If neither of the default ones satisfies your needs, you are able to create your own theme.

Examples of the HTML reports

DARK

LIGHT

Usage

Usage: AsmDiffNET [OPTIONS]
 Options:
  -h, --help                 show this message and exit
  
  -s, --source=VALUE         this is the OLD version of the library. Either a path to a specific assembly or 
                             a folder which contains assemblies
                             
  -t, --target=VALUE         this is the NEW version of the library. Either a path to a specific assembly or 
                             a folder which contains assemblies
                             
  -f, --filter=VALUE         specify a filter which will exclude other classes which doesn't reference
                             what's specified in the filter (eg. System.Reflection.Assembly)
                             
  -p, --pattern=VALUE        specify a regex pattern which will exclude all files which 
                             doesn't match the regular expression
                             
  -o, --output=VALUE         specify output format, JSON or HTML. Default: HTML
  
      --flags=VALUE          specify which kind of analysis you want the application to do.
                             Options: (a = Addtions, c = Changes, d = Deletions)
                             Ex. `flags=ad` will only search for and include
                             Additions and Deletions from the analysis of the assemblies.
                             Default: `flags=cd`
                             
      --theme=VALUE          specify either a filename within Assets\Themes
                             or a path to a CSS file.
                             Default options: light, dark
                             Default: `theme=light`

      --title=VALUE          the given title will be displayed at the top of the HTML report

      --maxdepth=VALUE       descend at most levels (a non-negative integer) levels of directories below the current

      --filename=VALUE       the name the tool will use for naming the result file, excluding the file extension.
                             The filename is used as the name for the namedpipe as well.

                             

Development

Want to contribute? Great!

Feel free to submit issues and pull requests.

License

AsmDiff.NET is licensed under the MIT license. See LICENSE for the full license text.