Window(Qt/Vs)软件添加版本信息
文章目录
- Window(Qt/Vs)软件添加版本信息
- VS添加版本信息
- 添加资源文件
- 添加版本定义头
- 自动更新版本
- 添加批处理脚本
- 设置生成事件
- Qt添加版本信息
- 添加资源文件
- 文件信息修改
- 自动更新版本
- CMake添加版本信息
- 添加资源文件
- 自动更新版本
- 参考
说明:
- 这里说的版本信息是右键软件可以在信息信息中看到的相信
- 这些都只是在Windows中的效果
- window中基本上都是通过添加资源文件.rc实现的
VS添加版本信息
- 测试环境:Vs2015
添加资源文件
- 右键项目 -> 添加 -> 资源 -> 选择Version -> 新建
添加版本定义头
- version.h
#pragma once
#define _VAR2STR(s) #s
#define VAR2STR(s) _VAR2STR(s)
#define VER_MAJOR 1
#define VER_MINOR 0
#define VER_REVISION 0
#define VER_BUILD 1
#define VERSION VER_MAJOR.VER_MINOR.VER_REVISION.VER_BUILD
#define VERSION_RC VER_MAJOR,VER_MINOR,VER_REVISION,VER_BUILD
#define STR_VERSION VAR2STR(VERSION)
#define STR_VERSION_RC STR_VERSION
#define COMPILE_TIME __DATE__ " " __TIME__
#define FILE_VERSION STR_VERSION_RC
#define FILE_DESCRIPTION "VS 自动修改软件版本号测试"
#define COMPANY "搞不懂软件工作室"
#define PRODUCTNAME "自动版本号测试软件"
#define SOFTWARENAME "SoftwareVerioon.exe"
#define COPYRIGHT "Copyright (C) 2022-2023"
- 修改资源文件
#include "version.h"
/
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION VERSION_RC
PRODUCTVERSION VERSION_RC
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "080404b0"
BEGIN
VALUE "CompanyName", COMPANY
VALUE "FileDescription", FILE_DESCRIPTION
VALUE "FileVersion", FILE_VERSION
VALUE "InternalName", SOFTWARENAME
VALUE "LegalCopyright", COPYRIGHT
VALUE "OriginalFilename", SOFTWARENAME
VALUE "ProductName", PRODUCTNAME
VALUE "ProductVersion", STR_VERSION_RC
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 1200
END
END
#endif // 中文(简体,中国) resources
/
自动更新版本
添加批处理脚本
-
未完成
-
使用批处理脚本完成版本号增加的工作
设置生成事件
- 右键项目 -> 配置属性 -> 生成事件 -> 后期生成事件 -> 命令行 -> 添加命令
Qt添加版本信息
- 测试环境:Qt5.12.10、Qt5.15.2
添加资源文件
-
只需要在.pro中添加VERSION qmake便会自动生成
VERSION = 1.0.0
-
但是如果修改资源文件每次重新构建时会重新生成一个资源文件覆盖掉以前的
-
给出的建议是先让qmake自动生成然后,将修改好的拷贝到源文件,并在pro中添加资源文件
-
这样做的目的是让qmake生成一个模板,当然如果已经有可直接添加
RC_FILE += $PWD/xxx.rc
-
如果使用RC_ICON添加应用图标可能会失效,推荐在RC文件中添加
# 之前使用 RC_ICONS 添加 图标的方式可能不行 RC_ICONS = xxxx.ico # 在资源文件中添加 IDI_ICON1 ICON DISCARDABLE "xxxx.ico"
文件信息修改
- 方法是通用的可以直接用vs上面的文件 rc,version.h的定义
- 只是需要用上面的方法添加资源文件
自动更新版本
- 未完成
CMake添加版本信息
添加资源文件
-
CMake在Windows平台依然是通过添加资源文件的方式实现
set(RC_FILE ${PROJECT_SOURCE_DIR}/xxx.rc) # 添加资源文件
-
编译时将资源文件变量也加入其中
自动更新版本
- 未完成
参考
VS DLL文件和EXE文件添加文件版本信息-CSDN博客
Visual studio每次build自动增加版本号 - onemuji - 博客园 (cnblogs.com)
个比较实用的VS C++版本号自增的实现方式_vscod 属性增加版本信息-CSDN博客
使用资源文件