Notepad++插件必须满足“同名子目录+同名DLL”结构且位数匹配才能加载;便携版与安装版路径不同;v8.0+需官方安装时勾选Plugin Admin;子目录名区分大小写不敏感但严禁空格/中文/特殊字符;残留进程或依赖缺失会导致静默失败。

插件放对位置但菜单里没有条目
Notepad++ 不会加载放在 plugins 根目录下的 DLL 文件,哪怕文件名完全正确。它只扫描符合「同名子目录 + 同名 DLL」结构的路径。
- 必须新建一个与插件主 DLL 文件名(不含
.dll)完全一致的子文件夹,例如NppFTP.dll→ 创建plugins\NppFTP\ - DLL 文件放进该子文件夹,路径应为
plugins\NppFTP\NppFTP.dll,不能是plugins\NppFTP.dll或plugins\NppFTP\libs\NppFTP.dll - 子目录名区分大小写不敏感,但不能含空格、中文或特殊字符(如
Npp FTP、NppFTP_v2均无效) - 便携版和安装版路径不同:便携版的
plugins在 Notepad++ 解压根目录;安装版默认在C:\Program Files\Notepad++\plugins(64 位)或C:\Program Files (x86)\Notepad++\plugins(32 位)
Notepad++ 架构与插件位数不匹配导致静默失败
64 位 Notepad++ 加载 32 位 DLL 时不会报错,只会跳过;反之亦然。现象是插件菜单空白、功能不可用,且任务管理器里看不到任何异常进程。
- 确认方式:菜单栏「帮助 → 关于 Notepad++」右下角明确标注
64-bit或32-bit,不是看操作系统或文件路径 - 下载插件时必须选带
x64、Win64或64-bit后缀的包,GitHub Release 页面的 Assets 列表里通常有明确标识 - 常见错误:从非官方渠道下载的“通用版”插件包,实际是 32 位;或误将
NPPJSONViewer-x86.zip解压到 64 位环境 - 验证命令(PowerShell):
Get-ChildItem "$env:ProgramFiles\Notepad++\plugins\*" -Directory | ForEach-Object { $dll = Get-ChildItem $_.FullName -Filter *.dll -ErrorAction SilentlyContinue; if ($dll) { Write-Host "$($_.Name): $($dll.Name) (Architecture: $((Get-Item $dll.FullName).VersionInfo.FileDescription -match 'x64' ? 'x64' : 'x86'))" } }
插件管理器菜单缺失或 Plugin Admin 不可用
v8.0+ 版本已移除旧版 PluginManager.dll,改用内置 PluginAdmin.dll,但它不是默认安装组件——安装时未勾选即不存在。
- 检查「帮助 → 关于 Notepad++」是否显示
64-bit;再按Alt+P看顶部菜单是否有Plugins → Plugin Admin - 若无,说明安装时未勾选「Plugin Admin」选项;第三方绿色版/企业定制版常阉割此功能,需换回官网纯净安装包重装并主动勾选
- 别往
plugins目录手动丢PluginManager.dll——v8.0+ 对它完全静默忽略,连日志都不写 - 确认安装来源是
notepad-plus-plus.org官网,v8.5.4+ 默认勾选 Plugin Admin,但用户可手动取消
重启后插件仍不生效的隐藏条件
Notepad++ 启动时会缓存插件加载状态,残留进程、配置损坏或依赖缺失都可能导致看似正确的安装失败。
- 必须彻底关闭所有
notepad++.exe进程:任务管理器中检查后台是否存在,尤其托盘图标右键退出后仍可能残留 - 部分插件(如
HexEditor、NppFTP)依赖同目录下的locale文件夹或config.ini,缺失会导致加载失败但无提示 - 插件之间存在冲突:同时安装多个 FTP 类插件(如
NppFTP和FtpSynchronize)可能互相屏蔽菜单项,建议每次只加一个并验证 - 便携版若混用系统安装路径(如把插件复制到
C:\Program Files\Notepad++\plugins),而实际运行的是便携版,路径根本不会被扫描
JSONViewer.dll 必须对应 plugins\JSONViewer\,而不是 plugins\jsonviewer\ 或 plugins\JSON-Viewer\。Notepad++ 不做模糊匹配,错一个字符就等于没装。


















