有些人用rsrc,有些人用GoVersionInfo,但我却死活不行。究其原因,估计是产生的syso文件版本问题:因为我用以下这个,它会产生32位版本和64位版本两个文件,而前两个软件,似乎只是产生的32位版本。
我的主角是go-winres,使用其实大同小异。
安装:
go install github.com/tc-hib/go-winres@latest
用法:
-
运行 go-winres init ,它将创建 winres 目录
-
修改winres目录下winres.json内容
-
运行 go-winres make 生成syso文件
也可以在文件中包含://go:generate go-winres make –product-version=git-tag
它将在go generate时自动生成syso文件
另外,我配合上脚本:go build -o %1_%2.exe -ldflags “-w -s -H windowsgui -X main.BUser=%1 -X ‘main.SiteNum=%2’ -X ‘main.SiteMacID=%3’”
它在编译时,替换程序中的几个变量值,达到命令行修改参数的作用,而不需修改程序本身。