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

详细信息项:

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

相关推荐
葡萄城技术团队1 分钟前
工业数据可视化:使用活字格 AIcoding + Three.js 构建轻量化三维设备监控大屏
开发语言·javascript·信息可视化
qiaosaifei5 分钟前
JAVA老项目中有大量的类名_编译时报找不到符号错误
java·开发语言
聪明蛋子哟9 分钟前
MCP协议深度落地:如何用Python/Java双语言实现统一的工具调用网关?
java·开发语言·python
2601_9622965129 分钟前
如何使用Golang包路径_管理本地和远程模块引用
golang·数据转换·变量定义·常用库·编程语言区别
一晌小贪欢30 分钟前
python-第27天:Python面向对象详解
开发语言·python·数据可视化·面向对象·python办公
ZGG00341 分钟前
线程池详解:从 7 大参数到生产避坑
java·数据库·后端
迪康Defender1 小时前
公用电脑责任追溯难?迪康端点安全一体化管理系统用户模式详解
java·运维·开发语言·网络·其他·安全
16月6日-晴2 小时前
Java面向对象——接口
java·开发语言
wuyk5552 小时前
107.FreeRTOS 链表深度解析:从原理到面试满分答案
c语言·开发语言·数据结构·stm32·单片机·链表·面试
geovindu2 小时前
CSharp: Wordcloud
开发语言·后端·c#·.net·.netcore·词云