geopro/installer
gaozheng b3b030767d fix(startup): 样本/PROJ 数据随包+相对定位+启动防护,修复他机登录后无界面崩溃
登录成功后 buildWorkbench 同步调 repo.loadGrid("grid1") 构建世界系,而
LocalSampleRepository 指向写死的开发机绝对路径 docs/剖面网格数据...;该路径
在他机不存在,readFile 打开失败抛 runtime_error,沿未加保护的调用链冒泡出
main 触发 std::terminate,进程在 window->show() 前消失——表现为登录框关闭
后既无主界面也无进程。本机因该路径存在而正常。

- main.cpp 改为运行时定位样本目录:优先 exe 旁 sampledata/,回退源码树开发
  路径;PROJ_DATA 候选已含 exe 旁 proj/。均不依赖写死绝对路径。
- main.cpp 给 buildWorkbench 包 try/catch:启动期同步加载失败弹可见错误而非
  静默退出(防护 PROJ/数据缺失等任意启动异常)。
- build_installer.ps1 随包 sampledata/(样本演示数据)与 proj/(PROJ 数据)到
  exe 旁,使他机 2D 演示视图与 3D CRS 配准可用。
2026-06-19 17:55:05 +08:00
..
lang chore(installer): Windows 安装包打包工具(Inno Setup) 2026-06-18 20:28:57 +08:00
README.md chore(installer): Windows 安装包打包工具(Inno Setup) 2026-06-18 20:28:57 +08:00
build_installer.ps1 fix(startup): 样本/PROJ 数据随包+相对定位+启动防护,修复他机登录后无界面崩溃 2026-06-19 17:55:05 +08:00
geopro.iss chore(installer): Windows 安装包打包工具(Inno Setup) 2026-06-18 20:28:57 +08:00

README.md

Geopro Windows 安装包

把已构建的 geopro_desktop 打包成单个 Inno Setup 安装程序(带安装向导、开始菜单/桌面快捷方式、卸载程序,并自动安装 VC++ 运行时)。

一键打包

# 1) 先构建 Release若尚未构建
build.bat app

# 2) 打包(默认版本 3.0.0,文件名带当天日期)
powershell -ExecutionPolicy Bypass -File installer\build_installer.ps1

产物:installer\dist\Geopro_Setup_<版本>-<yyyyMMdd>.exe

常用参数

参数 说明
-Version 3.1.0 指定版本号(最终文件名 Geopro_Setup_3.1.0-<日期>.exe
-Rebuild 打包前先 build.bat rebuild 干净重编
-QtPrefix D:/Qt/6.11.1/msvc2022_64 指定 Qt 路径(默认从 CMakePresets.json 解析)
-SkipDeploy 跳过 windeployqt不推荐仅 staging 已补齐时用)

打包流程build_installer.ps1 做了什么)

  1. stage — 把 build/release/src/app 复制到 installer/staging,剔除构建产物 CMakeFiles/*_autogen/*.pdb*.log*.cmake)。
  2. windeployqt — 在 staging 上补齐 Qt 运行时缺件:D3Dcompiler_47.dllopengl32sw.dll (软件 OpenGL 回退、WebEngine QML、各类插件。

    自动绕过已知坑:qt6advanceddocking.dll 名字带 qt6 前缀会被 windeployqt 误判为 Qt 模块、 去 Qt\bin 找它而报错中止——脚本临时把它拷进 Qt\bin,跑完即删。

  3. redist — 确保 vc_redist.x64.exe 就位(缺则从本机 Visual Studio 复制)。
  4. ISCC — 调用 Inno Setup 编译 geopro.issLZMA2/max 固实压缩,输出到 dist/

安装包行为

  • 默认装入 C:\Program Files\Geopro(需管理员权限)。
  • 仅在系统未安装 VC++ 2015-2022 x64 运行时时,静默安装 vc_redist.x64.exe
  • 创建开始菜单项;桌面快捷方式为可选项(默认不勾)。
  • 程序日志/配置写入 %LOCALAPPDATA%\Geomative\Geopro3,与安装目录解耦。
  • 向导支持简体中文 / 英文。

前置依赖(打包机)

工具 获取方式
Inno Setup 6 winget install --id JRSoftware.InnoSetup -e
Qt 6.11.1 (msvc2022_64) windeployqt.exe,已是构建依赖
Visual Studio 2022/2026 (C++) 提供 vc_redist.x64.exe,已是构建依赖

仓库内/生成物

入库(打包工具本体):

  • geopro.iss — Inno Setup 脚本
  • build_installer.ps1 — 一键打包工具
  • lang/ChineseSimplified.isl — 向导简体中文语言包
  • README.md

不入库(每次生成,见 .gitignore

  • staging/ — 临时部署副本
  • redist/ — 复制来的 vc_redist.x64.exe
  • dist/ — 最终安装包