Windows Runtime Prerequisites
This page lists OS-level prerequisites that must be present on a Windows host before the HACCPY Bridge app is started. macOS and Linux hosts are unaffected — they satisfy the equivalent dependencies through the system C/C++ runtime that ships with the OS.
Audience: ops / IT, installer authors, and support engineers handling field deployments.
TL;DR
Install the latest Microsoft Visual C++ Redistributable for Visual Studio 2015–2022 (x64) on every Windows machine that runs the bridge.
-
Download: Microsoft — latest supported Visual C++ RedistributableÂ
-
Pick the X64 package —
vc_redist.x64.exe -
One-time per machine; no reboot required for a fresh install
-
Silent install (for unattended deployment / installers):
vc_redist.x64.exe /install /quiet /norestart
Why it is required
The bridge runs ONNX inference via com.microsoft.onnxruntime:onnxruntime. On Windows,
this dependency unpacks and LoadLibrarys the native ONNX Runtime DLLs
(onnxruntime.dll, onnxruntime_providers_shared.dll, …). Those DLLs are built with
MSVC and are dynamically linked against the Microsoft Visual C++ runtime
(VCRUNTIME140.dll, VCRUNTIME140_1.dll, MSVCP140.dll).
On a clean Windows install those CRT DLLs are not present. The first call into ONNX fails with one of:
java.lang.UnsatisfiedLinkError: ... onnxruntime.dll: Can't find dependent libraries
The code execution cannot proceed because VCRUNTIME140_1.dll was not found.The JVM, the bundled Temurin JRE 21, JavaCV / FFmpeg, and the Spring Boot stack are all fine without the redistributable — only the ONNX path breaks. But because ONNX is on the detection hot path, a missing CRT means the bridge cannot perform its core function: no detections, no model loading, no heartbeats past the first inference attempt.
Which redistributable, exactly
| Question | Answer |
|---|---|
| Vendor | Microsoft |
| Product name | Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, 2019, and 2022 |
| Architecture | x64 (the bridge ships only windows-x86_64 natives) |
| Filename | vc_redist.x64.exe |
| Minimum supported version | 14.40 / 2015–2022 (the “latest supported” link tracks the current shipping version) |
| Supported Windows versions | Windows 10 1809+, Windows 11, Windows Server 2019+ — per Microsoft’s support matrix |
The MSVC CRT is forward-compatible within the 2015–2022 family, so installing the latest 2015–2022 redistributable also satisfies older 2015 / 2017 / 2019 binaries. There is no need to install multiple versions.
Verifying it is installed
Three quick checks, any of which is sufficient:
1. From PowerShell — check installed programs:
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*,
HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
Where-Object DisplayName -match 'Visual C\+\+ .* Redistributable' |
Select-Object DisplayName, DisplayVersionA row containing Microsoft Visual C++ 2015-2022 Redistributable (x64) means it’s
installed.
2. From PowerShell — check the DLLs are resolvable:
Test-Path "$env:SystemRoot\System32\VCRUNTIME140.dll"
Test-Path "$env:SystemRoot\System32\VCRUNTIME140_1.dll"
Test-Path "$env:SystemRoot\System32\MSVCP140.dll"All three should return True.
3. From the bridge logs:
If the redistributable is missing, you will see an UnsatisfiedLinkError referencing
onnxruntime.dll or VCRUNTIME140*.dll shortly after the bridge starts. If you reach
the first heartbeat without that error, you’re fine.
Deployment guidance
For customer/field deployments, do not rely on the redistributable being preinstalled. Although most developer workstations have it (transitively installed by Visual Studio, Office, common games, many Electron apps), freshly-imaged kiosks, locked-down corporate laptops, and Windows Server installs frequently do not.
Two acceptable options for the Electron app to handle this:
-
Option A (preferred) — chain the redistributable installer. Bundle
vc_redist.x64.exealongside the installer payload and run it silently as part of the bridge installation:vc_redist.x64.exe /install /quiet /norestartMicrosoft permits redistribution under the standard redistributable license. The installer is idempotent — running it when a newer version is already present is a no-op.
-
Option B — pre-flight check + clear error. At first launch, detect the missing DLLs (using the registry /
Test-Pathchecks above) and surface a dedicated dialog with a link to the download page, rather than letting the user see a rawUnsatisfiedLinkErrorstack trace. Document the requirement prominently in the installation guide.
Option A is strongly preferred — it keeps the install a one-click experience for non-technical users (kitchen managers, store staff).
Future-proofing
If/when the bridge gains arm64 Windows support, the ARM64 flavor of the
redistributable (vc_redist.arm64.exe) will be required in addition to / instead of the
x64 one. The x86 variant is not relevant — the bridge does not ship 32-bit native
binaries.