assembly-differ
0.18.2
dotnet tool install --global assembly-differ --version 0.18.2
dotnet new tool-manifest
dotnet tool install --local assembly-differ --version 0.18.2
#tool dotnet:?package=assembly-differ&version=0.18.2
nuke :add-package assembly-differ --version 0.18.2
assembly-differ

A .NET tool that diffs the public API of two versions of your assemblies, from disk, NuGet or a git commit, and suggests the version change the difference needs.
Install
dotnet tool install --global assembly-differ
On Linux (x64, arm64), Windows (x64, arm64) and macOS (arm64) this installs a native-AOT executable from the
assembly-differ.<rid> package; everywhere else it falls back to the framework-dependent assembly-differ.any. Install
the assembly-differ package itself, not those.
Quick start
Diff the last release on nuget.org against what you just built, and fail on a breaking change:
assembly-differ diff "previous-nuget|MyLib|1.3.0|net8.0" "directory|src/MyLib/bin/Release/net8.0" -t MyLib -f markdown -p major
A diff of Proc 0.13.0 against 0.14.0, which replaced its Start* overloads, ends with:
<Method Name="Start(StartArguments, CancellationToken)" DiffType="New" />
<Method Name="Start(StartArguments)" DiffType="Deleted" />
...
[diff] Suggested version change: Major
| Spec | Assemblies |
|---|---|
assembly\|<path> |
one dll |
directory\|<path> |
every dll in a directory, matched by file name |
nuget\|<id>\|<version>\|[tfm] |
a package from the NuGet sources your NuGet.config lists |
previous-nuget\|<id>\|<version>\|[tfm] |
the release on nuget.org before <version> |
github\|<owner/repo>\|<commit>\|<build command>\|<relative output path> |
a commit, cloned and built |
| Flag | What |
|---|---|
-t, --target |
only diff these assemblies (repeatable); defaults to every assembly both sides have |
-f, --format |
xml (default), markdown, asciidoc or github-comment |
-o, --output |
output directory or file; without it the diff only goes to the console |
-p, --prevent-change |
exit with 4 when the suggested change is at least patch, minor or major |
-a, --allow-empty-previous-nuget |
succeed when previous-nuget finds no earlier release (a first release) |
It also runs as a GitHub Action (uses: nullean/assembly-differ@main) and as a container
(ghcr.io/nullean/assembly-differ), both without a .NET SDK.
Learn more
- Source, GitHub Action and container usage: https://github.com/nullean/assembly-differ
- Releases: https://github.com/nullean/assembly-differ/releases
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.18.2 | 328 | 11/12/2026 |
| 0.18.1 | 60 | 11/11/2026 |
| 0.18.0 | 379 | 9/2/2026 |
| 0.17.0 | 7,326 | 11/12/2025 |
| 0.16.0 | 5,798 | 2/27/2025 |
| 0.15.0 | 11,454 | 1/5/2024 |
| 0.14.0 | 36,464 | 2/8/2022 |
| 0.13.0 | 66,669 | 11/16/2020 |
| 0.12.5 | 1,231 | 5/28/2020 |
| 0.12.4 | 742 | 5/28/2020 |
| 0.12.3 | 763 | 5/27/2020 |
| 0.12.2 | 767 | 5/27/2020 |
| 0.12.1 | 804 | 5/27/2020 |
| 0.12.0 | 4,155 | 5/20/2020 |
| 0.11.2 | 848 | 5/15/2020 |
| 0.11.1 | 872 | 5/15/2020 |
| 0.11.0 | 750 | 5/15/2020 |
| 0.10.1 | 740 | 5/14/2020 |
| 0.10.0 | 779 | 5/12/2020 |
| 0.9.2 | 792 | 5/12/2020 |