[Guide] Fixed "Microsoft Visual C++ 2015-2022 Redistributable (x64) is required" loop in CrossOver (Steam game, Unreal Engine)
Spent an evening fighting this with a Steam game (Strikers Club, Unreal Engine) running through CrossOver on my Mac. Sharing the full path in case it saves someone the trip.
The problem
Every time I launched the game from Steam inside CrossOver, I got:
>The following component(s) are required to run this program: Microsoft Visual C++ 2015-2022 Redistributable (x64)
Installing the redistributable through CrossOver did NOT fix it. The dialog kept coming back even though the runtime was clearly installed.
Why it happens (the actual root cause)
Two things are going on:
- The installer "fails" because a newer version is already there. If you check the vcredist install log inside the bottle you'll see
Error 0x80070666: Cannot install a product when a newer version is installed. That error is benign: the runtime you have is newer than the one the game ships with, so the old installer refuses to downgrade. You are not actually missing anything. - The game's bootstrapper checks for a physical file, not the registry. The log also shows it searching for
C:\windows\system32\api-ms-win-crt-runtime-l1-1-0.dll. On real Windows that file exists. In Wine/CrossOver the Universal CRT is implemented as a builtin, so the file is not physically there, and the check wrongly concludes the redistributable is missing. The runtime works fine, the detector is just naive. So: runtime installed, game refuses to believe it.
What did NOT work
- Reinstalling any version of the vcredist (x86 or x64) inside the bottle.
- Renaming
installscript.vdffiles understeamapps/common/Steamworks Shared/_CommonRedist/. Worth trying first in your case, because if the dialog comes from Steam's first-time setup this alone fixes it. In my case the check was inside the game's own bootstrapper, so it kept failing.
What DID work
The game folder looked like this (classic Unreal layout):
StrikersClub/
Engine/
UFG/
UFG.exe <- bootstrapper, does the broken check
The real game binary is at:
StrikersClub/UFG/Binaries/Win64/UFG-Win64-Shipping.exe
Steps:
- Keep Steam open in the background inside the bottle (needed for DRM).
- CrossOver > select the Steam bottle > Run Command.
- Point it to the Shipping exe:
"C:\Program Files (x86)\Steam\steamapps\common\StrikersClub\UFG\Binaries\Win64\UFG-Win64-Shipping.exe" - Before running, hit Save Command as Launcher so you get a double-clickable icon and never do this manually again. The game launched immediately. The bootstrapper (and its broken check) is simply skipped.
Bonus fix 1: online services not connecting
Launching the Shipping exe directly means SteamAPI does not know which game you are, so online features fail with "cannot connect to services". Fix:
- Find your App ID:
​
grep -i "name\|appid" ".../steamapps/"appmanifest_*.acf
Create
steam_appid.txtnext to the Shipping exe containing just the ID:echo "1952920" > ".../UFG/Binaries/Win64/steam_appid.txt"Launch again with Steam running in the background. Online worked after this.
Bonus fix 2: fake NVIDIA driver warning
On first launch the game warned about an outdated NVIDIA driver for D3D12 and offered a download link. There is no NVIDIA GPU in a Mac; that is the fake driver identity Wine reports. Just click No. Harmless.
Extra tip
If you get bad performance or crashes with D3D12 (runs through D3DMetal in CrossOver), Unreal games usually accept forcing DX11 by adding -dx11 to the launch command.
Hope it helps. Setup: CrossOver on macOS, Steam bottle, Unreal Engine game.