【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文件的属性-常规项:

详细信息项:

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

相关推荐
大鸡腿同学5 小时前
AI 知识库搜索不准?问题出在分块
后端
夕颜1116 小时前
Multica 使用心得介绍
后端
代码中介商7 小时前
C++左值与右值:核心判断法则详解
开发语言·c++
星轨zb7 小时前
LangChain4j 集成 Spring Boot:会话记忆 NPE 的根源与 ChatMemoryProvider 正确配置
java·spring boot·后端·langchain4j
JAVA9657 小时前
JAVA面试-并发篇 05-并发包AQS队列实现原理是什么
java·开发语言·面试
混凝土拌意大利面7 小时前
TG-BOOT springboot 功能集散开发框架(AI 协作友好)
人工智能·spring boot·后端
Halo_tjn7 小时前
反射与设计模式1
java·开发语言·算法
珊瑚里的鱼8 小时前
手撕单例模式中的饿汉模式和懒汉模式,懒汉模式还要再多加一个C++11版本的
开发语言·c++·单例模式
_不会dp不改名_8 小时前
python-opencv环境搭建
开发语言·python·opencv
小村儿8 小时前
连载12- Cluade code 的MCP 到底还用不用
前端·后端·ai编程