构建Electron应用时NSH字体安装脚本报错排查
字体安装NSH脚本报错的可能原因
以下是你的NSH宏代码可能导致报错的几个核心原因:
- 权限不足:
$FONTS是系统受保护目录,写入HKLM注册表项也需要管理员权限。如果安装程序未以管理员身份运行,复制字体文件和修改HKLM注册表的操作都会失败。 - 宏调用位置错误:若
customInstall/customUnInstall宏未在管理员级Section(如带减号的Section -Main SEC0000这类Section)中调用,会因权限限制触发报错。 - 字体文件路径无效:
${__FILEDIR__}\fonts\NotoSansGeorgian.ttf路径可能存在问题——比如编译时__FILEDIR__的实际指向和预期不符,或者字体文件未放在指定目录下,导致File命令无法找到文件而报错。 - 注册表项名称不匹配:Windows字体注册表的键名必须与字体文件的内部名称完全一致。你写的"Noto Sans Georgian (TrueType)"可能和字体实际的内部名称不符,会导致注册失败甚至触发错误。可以通过Windows字体查看器查看字体的真实名称。
- 未定义常量:
${WM_FONTCHANGE}是Windows消息常量,需要在脚本开头添加!include WinMessages.nsh引入该常量,否则会因变量未定义报错。 - 卸载时文件被占用:卸载过程中如果目标字体正在被其他程序使用,
Delete "$FONTS\NotoSansGeorgian.ttf"命令会执行失败,引发报错。
内容的提问来源于stack exchange,提问作者Luka Kavtaradze
相关产品推荐
相关产品推荐

