nildiff 1.16.3

dotnet tool install --global nildiff --version 1.16.3
                    
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.3
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=nildiff&version=1.16.3
                    
nuke :add-package nildiff --version 1.16.3
                    

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.16.3 24 4/9/2026
1.16.2 27 4/9/2026
1.16.1 44 4/8/2026
1.16.0 45 4/8/2026
1.15.0 29 4/8/2026