修 --quiet 卸载日志的两个问题(静态检查抓出来的)

1. run_agent.py 用了 Path 但没导入
   静态检查报 "undefined name 'Path'"。它被 try/except 吞了,
   所以卸载功能本身没坏,但**日志从来没写成过** ——
   属于"看着没事、其实功能是死的",最容易被漏掉的那种。

2. 日志写到刚被删掉的数据目录里
   原来是 Path(data_dir())/"uninstall.log",但 do_uninstall()
   会把整个数据目录删掉,写完等于白写。
   改到 %TEMP%\ykxmz-uninstall.log。

现在日志能正常落盘,内容长这样:
    开始卸载 ykxmz
      已停止其它 ykxmz.exe 实例(本进程 15572 除外)
      没有开机自启项
      已删除数据目录 ...
      程序目录交给安装包的卸载器删除
    卸载完成。

最终全量套件(33 个阶段):
    30 PASS + 3 SKIP(锁屏) + 0 FAIL
    新增的「安装包完整周期」PASS
This commit is contained in:
xmz7891
2026-10-07 03:14:11 +08:00
parent c7c0484a27
commit de65654676
2 changed files with 76 additions and 4 deletions
+8 -4
View File
@@ -36,6 +36,7 @@ from __future__ import annotations
import argparse
import os
import sys
from pathlib import Path
from lanremote import APP_NAME, __version__
from lanremote.config import Store, app_dir, data_dir
@@ -135,11 +136,14 @@ def cli_uninstall(keep_dir: bool = False, quiet: bool = False) -> int:
code = 0
if quiet:
# 没有控制台,把结果落到文件,排查时能看
# 没有控制台,把结果落到文件,排查时能看。
#
# ⚠ 别写进数据目录!do_uninstall() 会把它整个删掉,
# 写到那里等于白写(实测:日志文件从来没出现过)。
# 放 %TEMP% 最稳妥。
try:
from lanremote.config import data_dir
log = Path(str(data_dir())) / "uninstall.log"
log.parent.mkdir(parents=True, exist_ok=True)
import tempfile
log = Path(tempfile.gettempdir()) / "ykxmz-uninstall.log"
log.write_text(report, encoding="utf-8")
except Exception: # noqa: BLE001
pass