feat(release): ship the Windows build as 3x-ui.exe with version info and icon

Kaspersky (Trojan.Win64.Agent.sb / .smhqgz) and Defender flag the
Windows build heuristically. A stripped, unsigned Go binary with no
VERSIONINFO, icon or manifest scores high on those heuristics, so the
release job now generates a resource .syso with go-winres from
winres/winres.json, stamped with internal/config/version, before
go build. The .syso is a build artifact and is gitignored.

The Windows zip now carries 3x-ui.exe instead of x-ui.exe, matching the
project name, and the executable embeds the 3X logo as its icon. The
icon is a square 256px crop of media/3x-ui-dark.png, since the source
logo is 400x200 and Windows icons must be square.
This commit is contained in:
MHSanaei
2026-10-14 14:16:49 +02:00
parent a66b360c09
commit db8b01b8ed
4 changed files with 61 additions and 1 deletions
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

+54
View File
@@ -0,0 +1,54 @@
{
"RT_GROUP_ICON": {
"APP": {
"0000": "icon.png"
}
},
"RT_MANIFEST": {
"#1": {
"0409": {
"identity": {
"name": "3x-ui",
"version": ""
},
"description": "3X-UI web panel for Xray-core",
"minimum-os": "win7",
"execution-level": "as invoker",
"ui-access": false,
"auto-elevate": false,
"dpi-awareness": "system",
"disable-theming": false,
"disable-window-filtering": false,
"high-resolution-scrolling-aware": false,
"ultra-high-resolution-scrolling-aware": false,
"long-path-aware": false,
"printer-driver-isolation": false,
"gdi-scaling": false,
"segment-heap": false,
"use-common-controls-v6": false
}
}
},
"RT_VERSION": {
"#1": {
"0000": {
"fixed": {
"file_version": "0.0.0.0",
"product_version": "0.0.0.0"
},
"info": {
"0409": {
"CompanyName": "MHSanaei",
"FileDescription": "3X-UI web panel for Xray-core",
"FileVersion": "",
"InternalName": "3x-ui",
"LegalCopyright": "3X-UI contributors, licensed under GPL-3.0",
"OriginalFilename": "3x-ui.exe",
"ProductName": "3X-UI",
"ProductVersion": ""
}
}
}
}
}
}