You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go生成Windows可执行文件版本信息不显示问题排查

问题排查与解决

以下是几个可能导致版本信息未正确嵌入的原因及对应解决方法:

  • syso文件路径不符合Go编译器识别规则
    Go编译时会自动读取项目根目录或main.go同目录下的syso资源文件。如果go-winres make生成的syso文件在winres/子目录里,编译器可能无法识别。执行生成命令时可以指定输出到根目录:go-winres make --output .,确保生成的rsrc.syso(或对应架构的amd64.syso)放在项目根目录。

  • winres.json的版本格式错误
    Windows要求版本号是由四个整数组成的结构化数据,而非纯字符串。检查你的winres.json是否采用了正确格式:

    {
      "FixedFileInfo": {
        "FileVersion": {
          "Major": 1,
          "Minor": 0,
          "Build": 250651,
          "Revision": 0
        },
        "ProductVersion": {
          "Major": 1,
          "Minor": 0,
          "Build": 250651,
          "Revision": 0
        }
      }
    }
    

    若直接使用"file_version": "1.0.250651.0"这类字符串格式,go-winres无法正确解析生成符合要求的资源。

  • 编译时环境变量或架构指定有误
    在Git Bash中编译时,需确保GOOS和GOARCH环境变量设置正确,命令格式无误。正确的编译命令示例:

    GOOS=windows GOARCH=amd64 go build -o helloworld.exe main.go
    

    架构不匹配会导致syso中的资源无法嵌入目标可执行文件。

  • 版本信息查看命令不正确
    确认PowerShell查看版本的命令是否准确,推荐使用以下命令获取完整版本信息:

    Get-Item .\helloworld.exe | Select-Object -ExpandProperty VersionInfo
    

    部分简化命令可能因字段匹配问题导致显示为空。

内容的提问来源于stack exchange,提问作者Daan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 23:52:03