Skip to Content
Welcome to the new Haccpy docs! đź‘‹
InstallationWindows Runtime Prerequisites

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.


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

QuestionAnswer
VendorMicrosoft
Product nameMicrosoft Visual C++ Redistributable for Visual Studio 2015, 2017, 2019, and 2022
Architecturex64 (the bridge ships only windows-x86_64 natives)
Filenamevc_redist.x64.exe
Minimum supported version14.40 / 2015–2022 (the “latest supported” link tracks the current shipping version)
Supported Windows versionsWindows 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, DisplayVersion

A 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.exe alongside the installer payload and run it silently as part of the bridge installation:

    vc_redist.x64.exe /install /quiet /norestart

    Microsoft 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-Path checks above) and surface a dedicated dialog with a link to the download page, rather than letting the user see a raw UnsatisfiedLinkError stack 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.


References

Last updated on