Как использовать Scintilla.NET в проекте С#?
Я пытаюсь использовать Scintilla.NET в проекте (хочу хороший редактор + подсветка синтаксиса и т.д.). К сожалению, когда я ссылаюсь на двоичные файлы в своем проекте, я не могу использовать элементы управления Scintilla. Я получаю две разные ошибки.
-
Первое происходит при добавлении
SciLexer.dll как ссылка на мой
проект. Я получаю сообщение, в котором говорится:
Ссылка на SciLexer.dll может
не добавляется. Убедитесь, что
файл доступен, и что это
действительная сборка или COM-компонент.
-
Вторая ошибка возникает, когда я пытаюсь использовать элементы управления из ScintillaNET.dll. Если я попытаюсь перетащить компонент в форму, я получаю следующее сообщение: Не удалось создать компонент Scintilla. Появится сообщение об ошибке: System.ComponentModel.Win32Exception:% 1 не является допустимым приложением Win32 в ScintillaNet.Scintilla.get_CreateParams()
Любая помощь с любой из этих проблем была бы высоко оценена. Для записи я запускаю Visual Studio 2008, работающую на 64-битной платформе Windows 7.
Спасибо.
Ответы
Ответ 1
Прошло немного времени с тех пор, как я использовал Scintilla, но я понимаю, что SciLexer.dll является полностью родной DLL, поэтому вы не можете добавить ссылку на него из Visual Studio.
Вместо этого вы должны "организовать", чтобы SciLexer.dll отображался в правильном каталоге во время выполнения, чтобы его можно было загрузить с помощью ScintillaNET.dll. Самый безопасный способ сделать это - добавить SciLexer.dll в проект Visual Studio в виде простого файла (а не как ссылку), а затем изменить свойства файла, чтобы он был скопирован в выходной каталог при создании вашего проекта.
Учитывая, что вы на 64-битном уровне, я ожидаю, что вам нужно создать ваше приложение именно как 32-битное, а не AnyCPU. Как я уже сказал, прошло некоторое время с тех пор, как я это сделал, но когда я это сделал, у Scintilla были только 32-битные двоичные файлы.
Ответ 2
Я обошел проблему, скопировав файлы на C:\Windows\SysWOW64
Получил идею из поста @weston.
Ответ 3
Я использую ScintillaNET (порт С#). Он прост в использовании, но это память.
https://github.com/jacobslusser/ScintillaNET
Ответ 4
![введите описание изображения здесь]()
Нажмите "RUN" и выберите "MyComputer". Щелкните правой кнопкой мыши "MyComputer".
Нажмите "Дополнительные параметры системы".
После этого выберите "Дополнительно" и щелкните "Переменные среды".
Здесь мы можем добавить значение и путь.
Значение: что вам нравится "Например: Scintilla
Путь значений: где загруженная DLL сохранена. "EG: D:\prathap\DLL\
Путь загрузки: https://scintillanet.codeplex.com/releases
Выберите загрузки с правой стороны на экране.
Затем в приложении добавьте Scintill Dll в качестве ссылочной и других 2 dll в качестве существующих файлов.
Щелкните правой кнопкой мыши по проекту ADD - добавьте файлы - затем выберите файлы из локальной системы и убедитесь, что вы сохранили два файла "Копировать в каталог вывода = Копировать всегда".
Затем запустите приложение, в котором он будет работать.
Ответ 5
Я добавил ссылку на Scintilla.dll вместо SciLexer.dll - и он работал