notepad++便携版插件目录必须位于解压根目录下的plugins文件夹(与notepad++.exe同级),且v7.9+要求每个插件置于同名子文件夹内(如nppftp.dll需放入plugins\nppftp\),子目录名须与dll主文件名逐字符一致(区分大小写),并确保依赖文件一并放入该子目录。

插件目录路径必须和 Notepad++ 类型严格对应
Notepad++ 会根据安装方式自动识别 plugins 目录位置,不是所有场景都用 C:\Program Files\Notepad++\plugins。便携版(zip 解压版)的 plugins 文件夹必须和 notepad++.exe 在同一级目录;系统安装版才走默认安装路径。混放会导致插件完全不扫描——它连日志都不会记。
验证方式很简单:右键 notepad++++.exe → 属性 → 详细信息,看「原始文件名」是否含 portable 字样。含就是便携版,plugins 就得放在解压根目录下;不含就是安装版,plugins 默认在 %PROGRAMFILES%\Notepad++\plugins(64 位系统可能是 %PROGRAMFILES(X86)%)。
常见错误包括:
- 把便携版插件扔进
C:\Program Files\Notepad++\plugins(Notepad++ 根本不看这个路径) - 企业定制版或绿色版禁用了插件目录自动发现逻辑,需手动确认
notepad++.ini中[Settings]段是否有pluginsDir=自定义路径 - Windows 权限限制:若 plugins 目录在
Program Files下且当前用户无写入权限,插件复制过去后可能被系统静默拦截(右键 → 属性 → 安全 → 检查「当前用户」是否有「写入」勾选)
子目录名和 DLL 文件名必须完全一致(含大小写)
Notepad++ v7.9+ 默认只扫描 plugins 下的**子目录**,且要求子目录名与主 DLL 文件名(不含 .dll)**逐字符一致**。比如 JSONViewer.dll 必须放在 plugins\JSONViewer\JSONViewer.dll,而不是 plugins\jsonviewer\ 或 plugins\JSONViewer.dll。
这个规则不区分大小写吗?区分。Windows 文件系统虽不敏感,但 Notepad++ 插件加载器内部做字符串比对时是严格匹配的。你放了 plugins\MarkdownPanel\markdownpanel.dll,它就当没这回事。
快速检查命令(PowerShell):
Get-ChildItem "$env:ProgramFiles\Notepad++\plugins\*" -Directory | ForEach-Object { $dll = Get-ChildItem $_.FullName -Filter *.dll -ErrorAction SilentlyContinue; if ($dll) { "$($_.Name): $($dll.Name)" } }
输出里如果目录名和 DLL 名不一致,就立刻重命名目录。
不能共存 PluginManager.dll 和 PluginAdmin.dll
v8.0+ 的 Notepad++ 已彻底移除旧版 PluginManager.dll,改用内置 PluginAdmin.dll。如果你在 plugins 目录里同时放了这两个文件,或者手动塞了 PluginManager.dll 进去,它不会报错,但会静默失效——菜单里既没有 Plugin Manager,也没有 Plugin Admin,因为加载器直接跳过了冲突项。
判断依据很直接:
- 打开 Notepad++ → 帮助 → 关于 Notepad++,右下角标着
64-bit且版本 ≥ v8.0 → 只认Plugin Admin - 按
Alt+P看菜单栏有没有Plugins → Plugin Admin,没有就说明组件根本没装上(安装时没勾选),不是插件放错位置的问题 - 别试图从旧版复制
PluginManager.dll过来,它对 v8.0+ 是无效的,连日志都不会打
依赖文件必须和 DLL 在同一子目录下
很多插件(如 NppFTP、PythonScript)不是单个 DLL 就能跑的,还依赖 libssh2.dll、python27.dll 或 locale\zh-CN.xml 等配套文件。Notepad++ 加载时只查插件子目录,不会向上或跨目录找依赖。
典型症状是插件菜单不出现,或启动时报 Failed to load plugin。这时要:
- 去插件 GitHub Release 页面下载完整 zip 包(不是仅下载 DLL),解压后整个子目录(含所有文件)一起放进
plugins - 用
Dependencies.exe(v1.14+)打开你的 DLL,看「Missing Modules」列表里有没有红字模块 - 启动时按住
Shift键双击图标,弹出调试窗口,加载失败的 DLL 名会直接打印出来,比猜快得多
最常被忽略的是:有些插件(如 Explorer)要求 plugins\Explorer\ 下必须有 Config\ 子目录,缺了就整个插件不注册——它不报错,也不提示,就安静地不存在。











