nildiff 1.16.2

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global nildiff --version 1.16.2
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local nildiff --version 1.16.2
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=nildiff&version=1.16.2
                    
nuke :add-package nildiff --version 1.16.2
                    

nildiff

.NET Global Tool for folder diff and release validation. Compares two folders and generates structured diff reports.

Install

dotnet tool install -g nildiff

Usage

# Compare two folders
nildiff "/path/to/old-folder" "/path/to/new-folder" "my-comparison" --no-pause

# Interactive wizard mode
nildiff --wizard

# Show help
nildiff --help

Output

File Description
diff_report.md Markdown report for archiving and text-based review
diff_report.html Interactive single-file HTML report with sign-off workflow
audit_log.json Structured audit log with SHA256 hashes

Key Feature: IL-Level Comparison

For .NET assemblies (.dll, .exe), nildiff compares at the IL level rather than binary level, filtering out build-specific noise (MVID, timestamps). Functionally identical assemblies are reported as "unchanged" even when binary hashes differ due to non-deterministic builds.

Configuration

The tool works out of the box with default settings. To customize behavior, create a config.json and pass it via --config:

nildiff "/old" "/new" "label" --config /path/to/config.json

Individual settings can also be overridden via FOLDERDIFF_* environment variables (e.g. FOLDERDIFF_MAXPARALLELISM=8). For maintainer-only IL noise suppression, --creator applies the predefined buildserver-winforms ILIgnoreLineContainingStrings profile. See the annotated sample config for all available settings.

The default config.json location varies by OS:

OS Path
Windows %USERPROFILE%\.dotnet\tools\.store\nildiff\<version>\nildiff\<version>\tools\net8.0\any\config.json
macOS / Linux $HOME/.dotnet/tools/.store/nildiff/<version>/nildiff/<version>/tools/net8.0/any/config.json

Note: The default config in the tool store is overwritten on tool update. For persistent customization, keep your own config.json and use --config.

Optional: IL Disassembler

For IL-level comparison, install an IL disassembler:

dotnet tool install -g dotnet-ildasm

Without an IL disassembler, .NET assemblies are compared by SHA256 hash only.

Requirements

License

MIT

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.20.5 118 6/19/2026
1.20.4 112 6/11/2026
1.20.3 115 6/9/2026
1.20.2 104 6/7/2026
1.20.1 113 5/25/2026
1.20.0 112 5/10/2026
1.19.0 105 5/1/2026
1.18.3 112 4/29/2026
1.18.2 111 4/26/2026
1.18.1 119 4/20/2026
1.18.0 115 4/18/2026
1.17.2 115 4/17/2026
1.16.10 118 4/13/2026
1.16.9 115 4/12/2026
1.16.8 117 4/11/2026
1.16.7 114 4/11/2026
1.16.6 117 4/11/2026
1.16.5 115 4/11/2026
1.16.4 128 4/10/2026
1.16.2 107 4/9/2026
Loading failed