JustAssembly is a lightweight .NET assembly diff and analysis tool built on top of the Telerik JustDecompile Engine. As opposed to just comparing signatures, it produces a diff on all assembly contents including the code of the methods.
It is possible to use JustAssembly with command line interface, in order to generate an XML file with assembly public API differences.
That effectively makes it possible to use JustAssembly in an automated build pipeline to analyse differences between the output of the previous and the latest build (Semantic Versioning in future release, see issue #14 for details).
Commandlinetool.exe accepts three arguments
- First assembly path
- Second assembly path
- XML output path
- XML ignore file path (optional)
justassembly.commandlinetool.exe Path\To\Assembly1 Path\To\Assembly2 Path\To\XMLOutput.xml [Path\To\XMLIgnore.xml]
The ignore file has the same structure as the output XML. Any change listed in the ignore file will be excluded from the XML output. Note that all properties (including old and new source) must be a match for a change to be ignored.
In addition to the XML output two additional files are generated:
output.zip
: A zip file that contains the source files for all changes (new and old). This can be used to compare the changes with a comparison tool (doing a folder compare).output.patch
: A git patch file that contains the differences between the source files for all changes (a git diff over the contents of output.zip).
To inspect the XML output generated by the command line the Minidiffer tool can be used. It loads the XML file and displays the changes in a list. Changes can be filtered and exported to XML to add to the ignore XML.
Copyright (c) 2011 - 2018 Telerik EAD
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
You can download the latest binary version from the Telerik website.
- Add a new issue in the Issues section or find an existing issue describing the problem.
- Let us know thru the issue comments that you are working on a particular issue so that we can change its status to "In Progress," alert the rest of the community and avoid duplicating efforts.
- If choosing between more than one issues, please, start working on the one with the higher priority.
Read and sign the Contributors License Agreement
We'll do our best to merge pull requests within a day or two, especially if they are major. Once the merge is done, it takes 1-3 days to create a new binary and post it on the Telerik website.
JustAssembly uses JustDecompileEngine as a submodule. In order to get the submodule's code together with the main repo you need to pass --recursive
to the git clone
command. If you already cloned the repo in the traditional way, don't worry. First you need to initialize your local configuration file using git submodule init
. Then use git submodule update
to fetch all the data from JustDecompileEngine and check out the appropriate commit.
For roadmap and milestones, check the Issues section.
If you find a bug, want to suggest a feature or discuss existing ones, please use the Issues section.