Skip to content

Windows x64 setup installer bundles ARM64 cli-proxy-api.exe #27

Description

@zwq871482439

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

  1. Download ZeroLimit_1.1.3_Windows_x64-setup.exe on an x64 Windows machine.
  2. Run the installer and complete installation.
  3. Launch ZeroLimit.
  4. On the initial setup/login screen, set the CLI Proxy Server path to C:\Users\<user>\.zerolimit\cli_proxy\cli-proxy-api.exe.
  5. Click Start.
  6. 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:

  1. Download CLIProxyAPI_7.2.81_windows_amd64.zip from https://github.com/router-for-me/CLIProxyAPI/releases
  2. Extract cli-proxy-api.exe.
  3. Replace C:\Users\<user>\.zerolimit\cli_proxy\cli-proxy-api.exe with the extracted x64 version.
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions