【REST2SQL】09 给Go的可执行文件exe加图标和版本信息等

【REST2SQL】01RDB关系型数据库REST初设计
【REST2SQL】02 GO连接Oracle数据库
【REST2SQL】03 GO读取JSON文件
【REST2SQL】04 REST2SQL第一版Oracle版实现
【REST2SQL】05 GO 操作 达梦 数据库
【REST2SQL】06 GO 跨包接口重构代码
【REST2SQL】07 GO 操作 Mysql 数据库
【REST2SQL】08 日志重构增加输出到文件log.txt

给Go编译出来的可执行exe文件增加自己的图标和版本信息。比如下边的图标:

Step1 安装依赖包

在cmd命令行执行:

复制代码
go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@latest

执行完毕后 GOPATH 的 bin 目录里出现一个 goversioninfo.exe

gopath目录下有类似 src\github.com\josephspurrier\goversioninfo\cmd\goversioninfo 的目录及文件

则为成功。

Step2 打开源码增加一样注释

我在 rest2sql.go加如下注释

复制代码
// rest2sql project rest2sql.go
/* package上的第一行注释增加图标及版本信息
Step 1 go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@latest
执行完毕后 GOPATH 的 bin 目录里出现一个 goversioninfo.exe 则为成功。
Step 2 //go:generate goversioninfo
Step 3 在项目目录创建一个文件名为versioninfo.json
Step 4 准备一个图标文件
Step 5 go generate
Step 6 go build
*/
//go:generate goversioninfo
package main
......

最关键的是package main 紧挨着的一行注释

复制代码
//go:generate goversioninfo
package main

Setp3 创建一个文件名为versioninfo.json的json文件

在项目目录创建一个文件名为versioninfo.json的json文件,文件内容如下:

复制代码
{
    "FixedFileInfo": {
        "FileVersion": {
            "Major": 0,
            "Minor": 24,
            "Patch": 1,
            "Build": 11
        },
        "ProductVersion": {
            "Major": 0,
            "Minor": 24,
            "Patch": 1,
            "Build": 11
        },
        "FileFlagsMask": "3f",
        "FileFlags ": "00",
        "FileOS": "040004",
        "FileType": "01",
        "FileSubType": "00"
    },
    "StringFileInfo": {
        "Comments": "REST2SQL.exe",
        "CompanyName": "5217股务院",
        "FileDescription": "REST2SQL",
        "FileVersion": "v1.0.0.0",
        "InternalName": "rest2sql.go",
        "LegalCopyright": "Copyright (c) 2024 白龙马5217",
        "LegalTrademarks": "",
        "OriginalFilename": "REST2SQL.exe",
        "PrivateBuild": "",
        "ProductName": "REST2SQL",
        "ProductVersion": "v0.24.1.11",
        "SpecialBuild": ""
    },
    "VarFileInfo": {
        "Translation": {
            "LangID": "0804",
            "CharsetID": "04B0"
        }
    },
    "IconPath": "ZSMa.ico",
    "ManifestPath": ""
}

Setp4 准备图标ZSMa.ico

精心准备一个 ico 图标命名为 ZSMa.ico 放到项目目录。

Step5 生成图标及版本资源文件

在cmd命令行执行命令:

复制代码
go generate

成功则会在目录中生成一个resource.syso文件,只用生成一次就行了,改变了json或图标的话,需要再次生成。

Step6 编译exe文件

在cmd命令行执行命令:

复制代码
go build

到此图标和版本信息添加完毕。项目文件目录如下:

Step7 看效果

打开rest2sql.exe文件的属性-常规项:

详细信息项:

是不是很哇哦+哇噻!!!

相关推荐
BestAns39 分钟前
一文带你吃透 Java 反射机制
java·后端
沐知全栈开发1 小时前
HTML5 浏览器支持
开发语言
wasp5201 小时前
AgentScope Java 核心架构深度解析
java·开发语言·人工智能·架构·agentscope
WHOVENLY1 小时前
【javaScript】- 笔试题合集(长期更新,建议收藏,目前已更新至31题)
开发语言·前端·javascript
2501_916766541 小时前
【Springboot】数据层开发-数据源自动管理
java·spring boot·后端
小高Baby@1 小时前
Go语言中判断map 中是否包含某个key 的方法
golang
慌糖1 小时前
流-为序列化解释
开发语言
半夏知半秋1 小时前
docker常用指令整理
运维·笔记·后端·学习·docker·容器
程序员码歌1 小时前
短思考第263天,每天复盘10分钟,胜过盲目努力一整年
android·前端·后端
软件管理系统1 小时前
基于Spring Boot的便民维修管理系统
java·spring boot·后端