Заставьте плагин XML Tools работать с Notepad ++

16909
Neolisk

Я скачал последнюю версию Notepad ++ с официального сайта, а затем попробовал разные libxml.dllфайлы, чтобы плагин XML Tools работал. Последний, который я попробовал, был отсюда (должен быть официальным представителем):

Поэтому, когда я распаковываю DLL из вышеуказанного архива 7z (x64) и запускаю экземпляр Notepad ++, я получаю эту ошибку:

enter image description here

Есть идеи, как решить эту проблему?

Я открыт для предложений по понижению версии моего Notepad ++, просто нужно знать, какая версия.

5
Вы пытались установить из диспетчера плагинов? heavyd 10 лет назад 0
Вы используете 64-битную версию Notepad ++? Если нет, то почему вы скачиваете 64-битную версию libxml? Кстати, версия libxml, которая требуется для XML Tools, предоставляется * в загрузке для XML Tools *, все, что вам нужно сделать, это переместить ее в каталог, где находится notepad ++. Horn OK Please 10 лет назад 0
@heavyd: я не нашел его в списке плагинов менеджера плагинов. Neolisk 10 лет назад 0
@allquixotic: Вы можете быть правы об этом. Мой Блокнот ++ 32-битный, просто подумал, потому что у меня Windows x64, мне нужна x64. Извлечение включенных файлов с помощью XML Tools - это первое, что я попробовал. В нем говорилось о том, что плагины ANSI несовместимы с моим Unicode Notepad ++. Не уверен, что это значит. Я не нашел ни одной ** другой ** версии Notepad ++ на официальном сайте. Neolisk 10 лет назад 0
Ошибочно думать, что вы должны использовать двоичные файлы той же разрядности, что и ваша операционная система. Хотя вы не можете запускать 64-разрядные двоичные файлы в 32-разрядной ОС, вы * можете * запускать 32-разрядные двоичные файлы в 64-разрядной ОС. На самом деле, подавляющее большинство исполняемых вами двоичных файлов, независимо от того, понимаете вы это или нет, являются 32-разрядными по устаревшим причинам (а также потому, что 32-разрядные двоичные файлы работают на каждом компьютере, в то время как 64-разрядные двоичные файлы работают только на компьютерах с 64-битная Windows). Horn OK Please 10 лет назад 0
Фактически, вы никогда не сможете добиться этого, используя 64-битную сборку libxml2 с 32-битным Notepad ++, потому что вы никогда не сможете связать двоичные файлы разной битности в одно и то же адресное пространство (когда запускается Notepad ++. Exe). он динамически загружает все библиотеки DLL в одно и то же адресное пространство). Horn OK Please 10 лет назад 0
@allquixotic: Я не утверждаю, что сделал все правильно. Я просто говорю, что пробовал разные варианты, в том числе тот, который вы разместили ниже - и ни один из них не помог мне. Neolisk 10 лет назад 0
Попробуйте это: в базовом каталоге Notepad ++ удалите все файлы .DLL, кроме `SciLexer.dll`. В каталоге плагинов убедитесь, что у вас нет DLL-библиотек iconv, libxml2, libxslt или zlib1, потому что Notepad ++ будет пытаться динамически загружать их как плагины. Но эти четыре DLL не являются плагинами Notepad ++; это * зависимости * плагина `XMLTools.dll`. Таким образом, вы получите сообщение об ошибке «ANSI». Horn OK Please 10 лет назад 1
@allquixotic: я запутался с тем, что и где должно быть. Да, после того, как я вставил эти не-Notepad ++ плагины в корень NPP, все заработало отлично. Я изначально положил их в папку плагинов. Пожалуйста, измените свой ответ, чтобы он был полезен для других. Neolisk 10 лет назад 0

2 ответа на вопрос

9
Horn OK Please

When you get into this kind of scenario, you have probably done the install of the required dependencies wrong. Things to look for:

  1. If your Notepad++ is a 32-bit executable, you must not have 64-bit DLLs (or vice versa). The bitness of the DLLs and the bitness of notepad++.exe must match (32-bit to 32-bit, or 64-bit to 64-bit).

  2. Make sure you don't have XMLTools.dll sitting in the base directory where the notepad++.exe lives.

  3. Make sure you don't have any of the four XMLTools.dll dependencies sitting in the plugins directory! The plugins directory is only for actual Notepad++ plugins; any other DLLs sitting in the plugins directory will be dynamically loaded by Notepad++ and attempted to be activated as plugins. But, since libxml2, iconv, etc. are not actual plugins, but rather, dependencies for XMLTools, the dynamic load will fail, because these DLLs do not have the Notepad++ plugin hooks. This will cause weird errors about "ANSI" and stuff.

  4. If you don't have any other plugins installed that require native dependencies, you can safely delete any DLL file in the same directory as the notepad++.exe, except for SciLexer.dll. SciLexer is a core component of Notepad++ and must be kept.

  5. If you haven't done this yet, look in \path_to_your_notepad++_installation\notepad++\plugins\ext_libs

Copy those DLLs to the same directory as notepad++.exe:

iconv.dll libxml2.dll libxslt.dll zlib1.dll 
+1. Очень хорошо написано. Хотел бы я дать тебе больше одного за это. Еще раз спасибо. :) Neolisk 10 лет назад 0
Ссылка на установщик с сайта Notepad ++ отправляет вас к старой версии Xml Tools. Вы можете получить самые последние версии и получить x64 или x86 отсюда: https://sourceforge.net/projects/npp-plugins/files/XML%20Tools/ HaveSpacesuit 6 лет назад 0
-1
Aarush

Это связано с несовместимостью версии (x86 vs x64) между notepad ++ и файлом xmltools.dll. Проблема решается путем удаления версии dll и зависимостей для x86 и загрузки следующей версии x64 того же инструмента. https://sourceforge.net/projects/npp-plugins/files/XML%20Tools/Xml%20Tools%202.4.9%20Unicode/

Похожие вопросы