assembly-differ
1.1.0
dotnet tool install --global assembly-differ --version 1.1.0
dotnet new tool-manifest
dotnet tool install --local assembly-differ --version 1.1.0
#tool dotnet:?package=assembly-differ&version=1.1.0
nuke :add-package assembly-differ --version 1.1.0
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
In a repository, build it, then run the tool without a command to compare every library project with its latest release:
dotnet build -c Release && assembly-differ
Compare the package you just packed with its last release on nuget.org, and fail on a breaking change:
assembly-differ release build/output/MyLib.1.3.0.nupkg --fail-on major
assembly-differ nuget Proc 0.13.0 0.14.0 -f xml, a diff of two versions where 0.14.0 replaced the Start*
overloads, ends with:
<Method Name="Start(StartArguments, CancellationToken)" DiffType="New" />
<Method Name="Start(StartArguments)" DiffType="Deleted" />
...
[diff] Suggested version change: Major
| Command | Compares |
|---|---|
release <path> |
a .nupkg, .dll or directory with the release before it on your NuGet.config feeds; a first release succeeds |
files <old> <new> |
two local builds: .dlls, directories or .nupkgs |
nuget <id> [<version>] [<new-version>] |
in a solution, what updating a package would change; anywhere, two published versions |
projects |
every library project in the directory against its latest release; what runs without a command |
| Option | What |
|---|---|
-t, --target |
only compare these assemblies (repeatable); defaults to every assembly both sides have |
-f, --format |
markdown (default), xml, asciidoc, github-comment or json |
-o, --output |
a directory or file to write the report to, besides the console |
--fail-on |
exit with 4 when the suggested change is at least patch, minor or major |
diff with provider specs, such as "nuget|Proc|0.13.0", still works as before for the builds that call it.
Coding agents can use it instead of decompiling assemblies: in a solution, assembly-differ nuget X 2.0.0 shows what
updating X would break in the code it builds. The assembly-differ.skills package carries an agent skill for it.
It also runs as a GitHub Action (uses: nullean/assembly-differ@v1), which comments on and labels pull requests, and as a
container (ghcr.io/nullean/assembly-differ) that needs no .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 |
|---|---|---|
| 1.1.0 | 0 | 11/14/2026 |
| 1.0.0 | 9 | 11/14/2026 |
| 0.18.2 | 420 | 11/12/2026 |
| 0.18.1 | 64 | 11/11/2026 |
| 0.18.0 | 379 | 9/2/2026 |
| 0.17.0 | 7,361 | 11/12/2025 |
| 0.16.0 | 5,801 | 2/27/2025 |
| 0.15.0 | 11,454 | 1/5/2024 |
| 0.14.0 | 36,514 | 2/8/2022 |
| 0.13.0 | 66,673 | 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,156 | 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 |