End users don’t have Visual Studio. So you have to ship the runtime. 1. Ship the Redistributable (Most Common) Microsoft provides official redistributable packages. Bundle them with your installer.
Instead of embedding (statically linking) that code into every single .exe (which wastes disk space and memory), Windows loads a shared DLL: VCRUNTIME140.dll .
dumpbin /dependents MyApp.exe Look for VCRUNTIME140.dll . That tells you your app requires the VS 2015+ runtime. | Symptom | Likely Cause | Fix | |--------|--------------|-----| | Error on customer’s PC, works on yours | Missing redist | Install VC++ redist on target PC | | Error after Windows update | Runtime got uninstalled by cleanup | Reinstall redist | | Error with Python/node native module | Module built with newer VS | Install matching VS Build Tools | | Portable app won’t run on fresh Windows | No runtime installed | Use static linking or app-local DLLs | One Weird Trick for CI/CD If you’re building on a fresh build agent (GitHub Actions, Azure DevOps, Jenkins), don’t assume the runtime is present . Always install the redistributable as part of your build setup:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\v143\ This works well for portable apps. Use Dependency Walker or the built-in dumpbin tool: