# EPA **Repository Path**: mohistH/epa ## Basic Information - **Project Name**: EPA - **Description**: windwos: 用于修改可执行程序的文件版本和产品版本; 修改vdproj文件的version字段 - **Primary Language**: C++ - **License**: BSD-3-Clause-Clear - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-12-18 - **Last Updated**: 2022-12-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 0 源码获取 - [gitee](https://gitee.com/mohistH/epa) - [github](https://github.com/mohistH/EPA) ## 引用项目 - [https://gitee.com/peng_weijie/cpptools](https://gitee.com/peng_weijie/cpptools) # 1 概述 - 这是一款用于修改 **windows** 可执行程序( exe、dll)版本号 和 修改VS安装项目(.vdproj)版本号的小程序。 - 可执行程序可修改: 文件版本和产品版本 - 安装项目修改: version 字段 > 公司内部部分项目沿用,每当升级时,需要手动修改文件版本号和产品版本等信息,再重新编译, 较为繁琐。 更多时候,代码没有修改,仅仅修改版本号。 故开发该助手,用于维护软件后期发布。 # 2 原理 - 可执行程序:修改可执行程序中的资源字段值 - 安装项目:直接读取文件内容,解析后,再写入。 非调用windows官方api修改版本号(已测, 修改后,使用VS再次打开解决方案,可正常编译) # 3 开发环境 - 操作系统: win11 - Qt: 5.14 - Visual Studio : 2019 - VSCode: 1.72: 用于代码编写,调试。 # 5 代码管理 - SVN: 5.0.0 。( 本机搭建的服务器, 用于代码管理。 ) - CMake: 3.25 (支持modern cmake语法的版本都可以) # 6 文件夹概述 |序号|名称|简介|代码维护方式| |:--|:--|:--|:--| |1|Common|存放cmake自定义脚本文件| |2|EPA|主程序UI源码文件夹|CMAKE| |3|OctExeDllVersion|动态库项目源码,EPA调用动态库。OctExeDllVersion作用: 修改可执行文件的文件版本和产品版本|CMAKE| > OctExeDllVersion 是基于VS2019的MFC动态库, VS2017 之前的MF动态库与Vs2017及Vs2017之后的MFC动态库项目文件结构不太一样。 需要注意。 # 7 构建 ## 7.1 构建顺序 - 因为 **EPA** 依赖 **OctExeDllVersion**。 故 **须先** 构建 OctExeDllVersion, **再** 构建 EPA, 方可成功 - **OctExeDllVersion** 提供动态库对应的 cmake-config文件,详见:path/OctExeDllVersion/cmake目录 ## 7.2 Qt设置 - 打开 EAP/CMakeLists.txt, 将 **"\C:/major/development/tools/qt/5.14/install/5.14.2/msvc2015_64\"** 改为对应的Qt安装路径后 ,再执行构建 # 8 主程序UI概览 ![](https://img2023.cnblogs.com/blog/1630599/202212/1630599-20221218180434359-1400462664.png) # 9 功能 - 自动解析本机的所有版本 - 更新 可执行程序的文件版本和产品版本; 支持执行处理文件 ![](https://img2023.cnblogs.com/blog/1630599/202212/1630599-20221218180614503-1670301462.png) - 更新 安装包项目的version字段,可生成项目和执行批处理文件 ![](https://img2023.cnblogs.com/blog/1630599/202212/1630599-20221218180700316-791551153.png) # 10 更新日志 ### 2022-12-20 v.0.0.0.2 - 1 epa/CMAKELISTS.TXt 将链接动态库改为PRIVATE ### 2022-12-20 v.0.0.0.2 - 1 修复不能读取所有devenv.exe的BUG - 2 修复 OctExeDllVersion 读取exe和dll的BUG:迭代器起始位置为end(正确为begin) - 3 OctExeDllVersion 修复字符串分割错误的问题 - 5 增加初始化时,解析可执行程序的版本号 ### 2022-12-18 V0.0.0.1 - 1 增加输出结果控件, 用于提示用户当前操作状态 - 2 修复删除的BUG(多行删除) - 3 增加操作提示:修改版本和生成解决方案 - 5 完善用户提示 - 6 增加中文翻译 - 7 修复获取vs版本信息的按钮一直显示为执行的BUG, 但是 model 和 delegate依然显示英文 - 8 去掉oct_epa namespace, 并重新添加翻译 - 9 修复翻译没有显示的问题: 将加载qm放在main.cpp中,解决 - 10 增加可执行程序分组中,增加选择dll文件 - 11 增加遗漏的文件 - 12 EPA/cmake脚本增加拷贝query.exe文件的功能,同时调整vswhere的项目位置 ### 2022-12-17 V0.0.0.1 - 1 增加获取devenv的功能 - 2 优化devenv界面的功能 - 3 将exe和installproject修改版本改为一项一项的执行。而非,先将所有文件版本修改,再执行其他的。 - 5 修复安装包项目中,执行批处理文件时的process的workingdirectory错误的问题 - 6 增加结果输出显示区域 ### 2022-12-16 V0.0.0.1 - 1 新增UI优化 - 2 代码重构: ATableModel 类 - 3 安装包项目model和delegate重命名 - 5 提交本地重命名文件 - 6 增加关闭前, 将UI信息写入文件, 如果文件不存在,则创建文件 - 7 删除多余的文件 ### 2022-12-15 V0.0.0.1 - 1 修改安装包项目没有修改版本号成功的问题 - 2 重构代码: MVC模式 - 3 增加批处理文件执行功能 - 5 增加关闭、创建和打开按钮功能 - 6 增加标题栏显示当前文件的功能 ### 2022-12-13 V0.0.0.1 - 1 vdproj项目增加命令预览 - 2 增加预览batch 命令规则(实测正确)、 - 3 增加执行batch命令, 修复install project中不显示修订版本列 ### 2022-12-12 V0.0.0.1 - 1 增加sln文件解析 - 2 删除delegate文件, 改为 vdprojdelegate文件 - 3 改为exe修订文件和产品版本 - 5 删除多余文件 - 6 增加exeb保存文件的功能 ### 2022-12-09 V0.0.0.1 - 1 增加解析sln文件 - 2 增加文件显示tooltip ### 2022-12-08 V0.0.0.1 - 1 增加文件版本修改的功能 - 2 使用VS2019创建动态库修改项目 - 3 VDproj文件修改类BUG修复:无法修改文件的问题 - 5 修改文件版本的功能已经基本实现 ### 2022-12-07 V0.0.0.1 - 1 sqlite读写类将更新接口功能改为先删除在插入 - 2 优化数据库读写接口名称 - 3 修复数据库读写类中 写表格数据错误的问题 - 5 增加exe和dll文件列选择文件的功能 - 6 配置文件类增加对应的文件map对应关系 - 7 增加脚本文件选择 ### 2022-12-06 V0.0.0.1 - 1 增加VS版本选择 - 2 修改exe dll文件不显示编译器名称 - 3 修改VCproj显示编译版本名称 ### 2022-12-04 v0.0.0.1 - 1 增加动态库, 用于读写 exe 版本信息 - 2 封装文件版本读写类 - 3 exe版本修改增加版本写入功能 - 5 版本号统一名称 - 6 加入数据库文件读写及数据库文件类 - 7 增加数据库结构: 编译器名 - 8 增加Vs版本选项,但是内存泄漏 - 9 没有文件更新, 仅日志文件, 发现:OctExeDllVersion库存在内存泄漏 ### 2022-12-01 V0.0.0.1 - 1 修复无法显示model的列标题的问题 - 2 增加 Atableview类 - 3 模块化UI