diff-ext is a Windows context menu extension that enables quick file comparisons via a configurable diff tool. It includes both classic and modern extensions and packages into an MSIX installer.
22621
(for modern shell support)Visual Studio 2022 with:
Desktop development with C++
makeappx.exe
)/
├── classic/ # Classic shell extension (IContextMenu)
├── modern/ # Modern ExplorerCommand extension
├── shared/ # Shared logic (MRU handling etc.)
├── diff-ext-setup/ # GUI setup tool
├── packaging/ # MSIX manifest and icons
├── CMakeLists.txt # Main CMake config
└── build.ps1 # Optional multi-arch build script
Open Developer PowerShell for VS 2022, then:
mkdir build-x64
cd build-x64
cmake .. -A x64 -DCMAKE_BUILD_TYPE=Release
Replace x64
with x86
or ARM64
if needed.
cmake --build . --config Release
Binaries will appear in:
build-x64/bin/
Run the configuration tool to set your preferred diff tool and MRU list capacity:
build-x64\bin\diff-ext-setup.exe
You can set:
MSIX generation runs as part of the build process:
<build-dir>\msix\diff-ext_x64.msix
To package manually:
makeappx.exe pack /d msix_build /p msix/diff-ext_x64.msix /overwrite
To sign the MSIX package:
signtool sign /fd SHA256 /a /f path\to\YourCertificate.pfx /p yourPassword /tr http://timestamp.digicert.com /td SHA256 diff-ext_x64.msix
Classic DLLs must be registered manually (for test installs):
regsvr32 build-x64\bin\diff-ext-classic.dll
For modern shell extensions, install the MSIX package by double-clicking it.
To clean up:
reg delete "HKCR\*\shellex\ContextMenuHandlers\YourHandler" /f
Or uninstall the MSIX from Apps & Features.
BSD license.
Created by Sergey Zorin