notepad++ v7.9+ 强制要求插件dll必须置于同名子目录中(如nppftp.dll需放plugins\nppftp\下),因程序仅扫描子目录且严格匹配文件夹名与dll主文件名(含大小写),根目录dll被静默忽略。

Notepad++ v7.9+ 之后,插件目录里多出一堆同名子文件夹不是冗余,而是强制要求;所谓“冗余文件”往往是误放导致的无效残留,得手动清理。
为什么 plugins\ 下必须有 NppFTP\、JSONViewer\ 这类子目录
从 v7.9 开始,Notepad++ plugins 目录只扫描**子目录**,不再读取根目录下的 DLL 文件。它会检查每个子目录名是否与主 DLL 文件名(不含 .dll)逐字符一致(区分大小写)。比如:
-
NppFTP.dll必须放在plugins\NppFTP\NppFTP.dll,不能是plugins\NppFTP.dll或plugins\nppftp\ -
XMLTools.dll必须对应plugins\XMLTools\XMLTools.dll,哪怕你只放一个 DLL,也得套一层同名文件夹
这不是“冗余结构”,而是加载逻辑硬编码——没这层目录,Notepad++ 根本不识别插件,连日志都不会记。
哪些文件属于真·冗余,该删
真正该清理的是以下几类:
- 插件子目录里残留的
.bak、.old、.dll.bak等备份文件(Notepad++ 不加载它们,但可能干扰插件更新) - 同名插件多个版本共存,比如
plugins\LocalHistory\LocalHistory.dll和plugins\LocalHistory\LocalHistory_v2.dll(只留一个有效版本) - 已卸载插件遗留的空子目录(如
plugins\TextFX\但里面没 DLL) - 插件依赖的 VC++ 运行库(如
vcruntime140.dll)被错误复制到插件子目录——这类文件应放在 Notepad++ 主目录,而非每个插件子目录里
怎么避免下次又堆一堆“看似冗余”的目录
关键在安装习惯,不是靠后期清理:
- 下载插件时,优先选带
portable标签或明确说明“v7.9+ compatible”的版本,避开老版打包包 - 解压插件压缩包后,先确认主 DLL 名称(如
Explorer.dll),再新建同名子目录,把所有相关文件(DLL、INI、资源文件)一并拖进去 - 别用“全部解压到当前文件夹”——很多插件包默认解压结构就是
Explorer\Explorer.dll,直接把Explorer\整个文件夹扔进plugins\就行 - 用
PluginManager安装的插件,它会自动建对结构;但注意:PluginManager.dll和PluginAdmin.dll不可共存,后者已被前者取代,留一个就行
最常被忽略的一点:插件子目录名和 DLL 主文件名大小写必须完全一致,jsonviewer.dll 放进 plugins\JSONViewer\ 就不会加载——这种“看似存在却失效”的目录,比空目录更浪费排查时间。











