- 标签
- Troubleshooting
使用 mise 管理 Windows 平台的开发工具已经有一阵子了。这几天突然发现 mise 管理的 PHP 失效了。现象是找不到 php 命令、重新安装 PHP 失败。疑为某次 mise 版本升级导致的问题。
……
Nim 是一门高度灵活的编程语言,其代码具有很强的多态与组合能力,尤其在使用 macro 时,语义往往需要在编译期展开后才能最终确定。这种高自由度的设计在增强抽象能力的同时,也引入了显著的语义不确定性,使得程序行为更依赖上下文推导与编译期分析。
最近碰到一个令人迷惑的 Nim 编译器问题。在某个模块中,我定义了如下的宏,用于提供对 config 对象的读写封装:
……
Windows API RegGetValueW 函数的原型如下:
c++LSTATUS RegGetValueW(
[in] HKEY hkey,
[in, optional] LPCWSTR lpSubKey,
[in, optional] LPCWSTR lpValue,
[in, optional] DWORD dwFlags,
[out, optional] LPDWORD pdwType,
[out, optional] PVOID pvData,
[in, out, optional] LPDWORD pcbData
);使用该 API 获取字符串值时,是否传递 pvData 参数会影响 pcbData 输出的值大小。
……
上周五(10月17日)进行了 Windows 系统更新和软件升级,升级的软件并不包含 Windows Terminal。本周一(10月20日)发现 Windows Terminal 无法启动——运行后在任务栏闪现窗口,但立即退出进程。尝试多个旧版本的 Windows Terminal,依然无法运行。
起初怀疑是 Windows 更新导致的问题。另外发现 GitHub 上已经有人提交了 Issue,描述也是如此。这更加深了是 Windows 更新的嫌疑。不过项目维护者表示,引起崩溃的屎山代码已经有 3 年没人动过了,应该不至于有问题。
……
系统使用的 vcpkg 是由 scoop 安装的,在某次 scoop update -a 更新后故障无法运行。通过分析发现是由于安装脚本未能正确执行导致文件缺失引起的。以下是故障分析过程。
打开 UniGetUI 更新时发现 vcpkg 的安装源不见了。
在命令行中运行 vcpkg 提示:
Shim: Could not determine if target is a GUI app. Assuming console.
Shim: Could not create process with command '"D:\Apps\scoop\apps\vcpkg\current\vcpkg.exe" '.运行命令 scoop list vcpkg,显示软件已安装:
Installed apps matching 'vcpkg':
Name Version Source Updated Info
---- ------- ------ ------- ----
vcpkg 2025.07.25 main 2025-07-29 10:56:05看起来是 scoop shim 出了问题。尝试用 scoop reset vcpkg 命令重置。再次运行 vcpkg,无响应。接着尝试卸载 vcpkg 重新安装。运行 scoop uninstall vcpkg 命令,卡在运行 uninstall script 无响应。
……
通过 Windows API GetSystemMenu 获取窗口系统菜单(即窗口标题栏右键菜单)句柄,可以实现自定义窗口菜单的功能。但若获取的窗口菜单句柄来自其他进程的窗口,便会引发问题。
……
Windows 包管理器 Scoop 上的 GIMP 3.0 已经发布一周多了,期间已经推送了三个版本。然而官方的安装脚本存在错误,导致用户无法正确安装,至今仍未解决。目前 GIMP 3.0 的安装配置主要存在两个问题:
问题一只要将 Scoop 默认的 innounp 卸载并替换成 innounp-unicode 就行了:
powershellscoop uninstall innounp
scoop install versions/innounp-unicode问题二的错误信息如下:
……
本文记录一次 WinGet 升级故障排查的过程。最终删除了 Windows 应用商店安装的版本,再使用 Scoop 重新安装,通过这种方式解决了问题。
运行一个 C# 编写的程序,弹出如下提示:

实际上系统已经安装 .NET Runtime 8.0,不过还是尝试通过错误消息中的链接下载 .NET Desktop Runtime 8.0 并重新安装。再次运行程序,仍然提示以上错误。
……
这是一个秋高气爽的午后,当我从摸鱼中回过神来时,已经错过了午餐时间。我拿起手机,慵懒地倚靠在办公椅中,一边划动着屏幕,一边思考接下来午餐该吃什么……
错过用餐时间并不是失误,而是有意为之。错峰用餐的好处有很多——比如出餐时间会更快;骑手不赶时间,有时会将外卖送上楼而不是放在楼下取餐柜,免去下楼取餐的麻烦;另外午餐吃得晚,下午也不容易饿。
……