Menu

Tree [8cefa5] master /
 History

HTTPS access


File Date Author Commit
 .github 2025-05-30 serg serg [ee5023] chore: cleanup release
 classic 2025-05-30 serg serg [de0cec] chore: lean up debug output; update build
 diff-ext-setup 2025-05-31 serg serg [8cefa5] feat: use dialog-layout library
 installer 2025-05-30 serg5z serg5z [9445e6] feat: add ci/cd pipeline
 manifests 2025-05-30 serg serg [4f506e] chore: return unvirtualizedResources capability...
 modern 2025-05-30 serg serg [de0cec] chore: lean up debug output; update build
 packaging 2025-05-21 serg serg [dba321] feat: add support for CPack; use separate appx ...
 shared 2025-05-30 serg serg [de0cec] chore: lean up debug output; update build
 .gitignore 2025-05-20 serg serg [65cd3c] Full project rewrite
 .gitlab-ci.yml 2025-05-30 serg5z serg5z [9445e6] feat: add ci/cd pipeline
 CMakeLists.txt 2025-05-31 serg serg [8cefa5] feat: use dialog-layout library
 LICENSE 2025-05-29 serg serg [106465] chore: update copyright in license files
 LICENSE_RU 2025-05-29 serg serg [106465] chore: update copyright in license files
 PRIVACY.md 2025-05-21 serg serg [dba321] feat: add support for CPack; use separate appx ...
 README.md 2025-05-21 serg serg [dbebce] chore: add README; add arch name to the msix pa...
 TODO.txt 2025-05-20 serg serg [65cd3c] Full project rewrite

Read Me

🧩 diff-ext – File Comparison Context Menu Extension

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.


✅ Prerequisites

  • Windows 10/11, version ≥ 22621 (for modern shell support)
  • Visual Studio 2022 with:

  • Desktop development with C++

  • CMake tools for Windows
  • CMake ≥ 3.15
  • Windows SDK (for makeappx.exe)
  • PowerShell

📁 Project Structure

/
├── 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

⚙️ Build Instructions

Step 1: Configure

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.

Step 2: Build

cmake --build . --config Release

Binaries will appear in:

build-x64/bin/

💠 GUI Setup

Run the configuration tool to set your preferred diff tool and MRU list capacity:

build-x64\bin\diff-ext-setup.exe

You can set:

  • External diff tool executable path
  • MRU list size (up to 64 entries)

📆 MSIX Packaging

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

🔐 Code Signing (Optional)

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

🧪 Testing & Registration

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.


🛉 Uninstall

To clean up:

reg delete "HKCR\*\shellex\ContextMenuHandlers\YourHandler" /f

Or uninstall the MSIX from Apps & Features.


📄 License

BSD license.


🧵 Credits

Created by Sergey Zorin

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.