一、获取所需的工具

  • GoVersionInfo
go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@latest
  • 执行完毕后GOPATHbin目录里出现一个goversioninfo.exe则为成功。

    此处请注意,建议把Go环境变量GO111MODULE的值设置为auto

    GO111MODULE=auto

二、源码设置

  • 关键代码://go:generate goversioninfo
  • 在需要编译的文件第一行添加,如:
//go:generate goversioninfo
package main

image-20220824222856389

三、定义版本信息

  • 在项目目录创建一个名为versioninfo.jsonjson文件,内容如下:
{
    "FixedFileInfo": {
        "FileVersion": {
            "Major": 1,
            "Minor": 0,
            "Patch": 0,
            "Build": 0
        },
        "ProductVersion": {
            "Major": 1,
            "Minor": 0,
            "Patch": 0,
            "Build": 0
        },
        "FileFlagsMask": "3f",
        "FileFlags ": "00",
        "FileOS": "040004",
        "FileType": "01",
        "FileSubType": "00"
    },
    "StringFileInfo": {
        "Comments": "这是程序描述",
        "CompanyName": "这是公司名称",
        "FileDescription": "这是文件说明",
        "FileVersion": "v1.0.0.0",
        "InternalName": "这是程序内部名称",
        "LegalCopyright": "Copyright (c) 2022 GuHong",
        "LegalTrademarks": "",
        "OriginalFilename": "这是原始文件名",
        "PrivateBuild": "",
        "ProductName": "这是产品名称",
        "ProductVersion": "v1.0.0.0",
        "SpecialBuild": ""
    },
    "VarFileInfo": {
        "Translation": {
            "LangID": "0804",
            "CharsetID": "04B0"
        }
    },
    "IconPath": "icon.ico",
    "ManifestPath": ""
}

四、编译程序

  • 找一个ico图标命名为icon.ico放到项目目录。

image-20220824223308390

  • 然后在项目目录执行命令:
go generate
//或者执行
goversioninfo
  • 成功则会在目录中生成一个resource.syso文件,只用生成一次,改变了json文件内容或图标的话,需要再次生成。

    image-20220824224015255

  • 最后执行

    go build    //直接编译
    //或者执行
    go build -ldflags "-s -w"    //减小编译后的文件大小
    注:以上所有操作均在项目根目录下操作

五、展示效果

image-20220824224343001

Last modification:August 24, 2022
如果觉得我的文章对你有用,请随意赞赏