BeyondDimension / BeyondDimension/SteamTools
🐛[BUG] Steam 更新后 loginusers.vdf 使用 AutoLogin,账号切换列表为空
- Dominant language
- C#
- Stars
- 26.8k
- Forks
- 1.7k
- PR merge metrics
- No merged PRs in 30d
Description
## 请认真检查以下清单中的每一项
- [x] 已经搜索过,没有发现类似的 issue
- [x] 已经搜索过文档,没有发现相关内容
- [x] 已经尝试使用过最新版,问题依旧存在
- [ ] 使用的是官方版本(未替换及修改过安装目录程序文件)
### 🐛 描述
Steam 客户端更新后,Watt Toolkit 2.8.6 的账号切换页面不再显示任何本机已登录账号,但 Steam 的账号记录没有丢失。
检查 `Steam/config/loginusers.vdf` 后发现:每个账号仍包含 `AccountName`、`PersonaName`、`RememberPassword` 等信息,但旧字段 `MostRecent` 已不存在,改为新字段 `AutoLogin`。旧版读取逻辑将 `MostRecent` 视为必读字段,字段缺失时会发生空引用并跳过账号。
### 📷 复现步骤
1. 使用近期更新后的 Steam 客户端,且 `loginusers.vdf` 中账号条目使用 `AutoLogin`、不含 `MostRecent`。
2. 打开 Watt Toolkit 2.8.6 的账号切换页面。
3. 账号列表显示为空。
### 📄 日志信息
```
GetRememberUserList Fail(0)
RuntimeBinderException: Cannot perform runtime binding on a null reference
```
本机 `loginusers.vdf` 中的账号记录完整,未删除账号或重装 Steam。
### 建议的兼容方向
读取时兼容 `AutoLogin` 与旧 `MostRecent`;切换账号时也避免仅写入旧字段,以免新版 Steam 配置被改回旧格式。
### 🚑 其他信息
- 处理器体系结构:x64
- 系统版本号:Windows 11
- 下载渠道:旧版安装包
- 程序版本:2.8.6
- 是否包含独立运行时:是
- 说明:已自行编译兼容版本验证读取与切换账号可恢复正常。
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the GetRememberUserList entry point and how the account-switching page reads Steam/config/loginusers.vdf; the report identifies RuntimeBinderException as the failure when MostRecent is absent. Verify the behavior with entries containing AutoLogin and legacy MostRecent, and consider the work done when accounts load and switching no longer rewrites newer Steam records to the legacy format.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- authentication, desktop
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100