# -*- coding: utf-8 -*- """组装更新包_1.0.4: 成套报价软件.exe + 使用说明.txt → 目录 + zip""" import os import shutil import zipfile ROOT = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")) REL = os.path.join(ROOT, "release", "成套报价软件") OUT = os.path.join(REL, "Output") PKG = os.path.join(OUT, "更新包_1.0.4") 说明 = """成套报价软件 更新包 v1.0.4(覆盖式更新) 本期更新(v1.0.4,2026-10-01): 一、版本号体系(重点) 软件正式引入版本号管理:关于软件页显示版本 v1.0.4, 安装包文件名带版本号,今后每版递增、更新可追溯。 二、独立扒图程序退役(结构精简) CAD/PDF 扒图独立程序(cadbt.exe/pdfbt.exe)不再随软件安装—— 全部扒图功能由主程序内嵌窗口承载,功能无任何减少; 安装包体积明显减小,升级更干净。 三、PDF 扒图缩放流畅(上期修复延续) 大幅面图纸滚轮缩放即时跟手,不再卡顿。 四、数据落库与查询提速(上期优化延续) 关窗数据完整落库;项目库/方案库查询索引优化。 五、稳定性 后台异常写入日志(安装目录 logs),便于远程排查。 使用方法: 1. 完全关闭成套报价软件; 2. 把本包里「成套报价软件.exe」复制到安装目录(默认 C:\\成套报价软件)覆盖; 3. 重新打开软件,关于软件页应显示 v1.0.4。 (完整安装包 成套报价软件_Setup_1.0.4.exe 已同步构建,全新机器请用安装包。) """ def main(): if os.path.isdir(PKG): shutil.rmtree(PKG) os.makedirs(PKG) # 主程序 shutil.copy2(os.path.join(REL, "成套报价软件.exe"), PKG) # (2026-10-01 独立 pdfbt.exe 退役后不再随更新包分发) # 使用说明(GBK,记事本直接打开不乱码) with open(os.path.join(PKG, "使用说明.txt"), "w", encoding="gbk", newline="\r\n") as f: f.write(说明) # zip(文件夹+zip两种形态,与历史更新包一致) zip_path = PKG + ".zip" if os.path.exists(zip_path): os.remove(zip_path) with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as z: for name in os.listdir(PKG): z.write(os.path.join(PKG, name), name) print("更新包目录:", PKG) print("更新包zip:", zip_path) for name in os.listdir(PKG): print(" -", name, os.path.getsize(os.path.join(PKG, name)), "字节") print("zip大小:", os.path.getsize(zip_path), "字节") if __name__ == "__main__": main()