Bug Description
The Windows x64 installer build of ZeroLimit (v1.1.3) ships the CLIProxyAPI executable compiled for ARM64, which fails to run on standard x64 Windows machines with the following error:
计算机类型不匹配
映像文件 C:\Users<user>.zerolimit\cli_proxy\cli-proxy-api.exe 无效,但它对另一种计算机类型有效。
(English: "Computer type mismatch. The image file ... is invalid, but valid for another computer type.")
Root Cause
The CLIProxyAPI executable extracted to the user's profile directory at:
C:\Users\<user>\.zerolimit\cli_proxy\cli-proxy-api.exe
is a PE32+ ARM64 executable instead of the expected x64 (AMD64) executable.
Verified with:
file cli-proxy-api.exe
# PE32+ executable for MS Windows 6.01 (console), ARM64, 6 sections
Environment
- OS: Windows 10 x64 (build 26200)
- ZeroLimit version: 1.1.3
- Downloaded artifact:
ZeroLimit_1.1.3_Windows_x64-setup.exe
- CPU architecture: x64/AMD64
- Install path:
C:\Program Files\ZeroLimit\
Steps to Reproduce
- Download
ZeroLimit_1.1.3_Windows_x64-setup.exe on an x64 Windows machine.
- Run the installer and complete installation.
- Launch ZeroLimit.
- On the initial setup/login screen, set the CLI Proxy Server path to
C:\Users\<user>\.zerolimit\cli_proxy\cli-proxy-api.exe.
- Click Start.
- The "Computer type mismatch" error dialog appears.
Expected Behavior
The x64 Windows installer should bundle the x64 (windows_amd64) build of CLIProxyAPI, not the ARM64 (windows_aarch64) build, so that it runs out of the box on x64 Windows.
Workaround
Manually download the x64 CLIProxyAPI release from the upstream repo and replace the bundled ARM64 executable:
- Download
CLIProxyAPI_7.2.81_windows_amd64.zip from https://github.com/router-for-me/CLIProxyAPI/releases
- Extract
cli-proxy-api.exe.
- Replace
C:\Users\<user>\.zerolimit\cli_proxy\cli-proxy-api.exe with the extracted x64 version.
- Restart ZeroLimit and click Start.
Suggested Fix
Update the ZeroLimit build/packaging pipeline to download the correct CLIProxyAPI architecture based on the target Windows build (x64 vs ARM64). For the x64 installer, use CLIProxyAPI_*_windows_amd64.zip; for the ARM64 installer, use CLIProxyAPI_*_windows_aarch64.zip.
Thanks for the project! Once the executable is replaced with the x64 version, the app works correctly.
Bug Description
The Windows x64 installer build of ZeroLimit (v1.1.3) ships the CLIProxyAPI executable compiled for ARM64, which fails to run on standard x64 Windows machines with the following error:
(English: "Computer type mismatch. The image file ... is invalid, but valid for another computer type.")
Root Cause
The CLIProxyAPI executable extracted to the user's profile directory at:
is a PE32+ ARM64 executable instead of the expected x64 (AMD64) executable.
Verified with:
file cli-proxy-api.exe # PE32+ executable for MS Windows 6.01 (console), ARM64, 6 sectionsEnvironment
ZeroLimit_1.1.3_Windows_x64-setup.exeC:\Program Files\ZeroLimit\Steps to Reproduce
ZeroLimit_1.1.3_Windows_x64-setup.exeon an x64 Windows machine.C:\Users\<user>\.zerolimit\cli_proxy\cli-proxy-api.exe.Expected Behavior
The x64 Windows installer should bundle the x64 (
windows_amd64) build of CLIProxyAPI, not the ARM64 (windows_aarch64) build, so that it runs out of the box on x64 Windows.Workaround
Manually download the x64 CLIProxyAPI release from the upstream repo and replace the bundled ARM64 executable:
CLIProxyAPI_7.2.81_windows_amd64.zipfrom https://github.com/router-for-me/CLIProxyAPI/releasescli-proxy-api.exe.C:\Users\<user>\.zerolimit\cli_proxy\cli-proxy-api.exewith the extracted x64 version.Suggested Fix
Update the ZeroLimit build/packaging pipeline to download the correct CLIProxyAPI architecture based on the target Windows build (x64 vs ARM64). For the x64 installer, use
CLIProxyAPI_*_windows_amd64.zip; for the ARM64 installer, useCLIProxyAPI_*_windows_aarch64.zip.Thanks for the project! Once the executable is replaced with the x64 version, the app works correctly.