Как использовать Scintilla.NET в проекте C#?

Я пытаюсь использовать Scintilla .NET в проекте (мне нужен хороший редактор + подсветка синтаксиса и т. д.). К сожалению, когда я ссылаюсь на двоичные файлы в своем проекте, я не могу использовать элементы управления Scintilla. Я получаю две разные ошибки.

  1. первое происходит при добавлении Сцилексер.dll как ссылка на мой проект. Я получаю сообщение, в котором говорится:: ссылка на SciLexer.dll может не добавляйтесь. Пожалуйста, убедитесь, что файл доступен, и что Это допустимая сборка или COM-компонент.

  2. вторая ошибка возникает, когда я пытаюсь использовать элементы управления из ScintillaNET.файл DLL. Если я попытаюсь перетащить компонент в форму, я получу следующее сообщение: не удалось создать компонент Scintilla. Сообщение об ошибке: System.ComponentModel.Win32Exception: %1 не является допустимым приложением Win32 в ScintillaNet.Искра.get_CreateParams()

любая помощь с любой из этих проблем значительно ценится. Для записи я запускаю Visual Studio 2008, работающий на 64-разрядной платформе Windows 7.

спасибо.

5 ответов


прошло некоторое время с тех пор, как я использовал Сцинтиллу, но я понимаю, что это SciLexer.dll-это полностью собственная DLL, поэтому вы не можете добавить ссылку на нее из Visual Studio.

, вы должны организовать для SciLexer.dll появится в нужном каталоге во время выполнения, чтобы его можно было загрузить с помощью ScintillaNET.файл DLL. Самый безопасный способ сделать это-добавить SciLexer.dll в проект Visual Studio в виде простого файла( не в качестве ссылки), а затем измените свойства в файле, который будет скопирован в выходной каталог при построении проекта.

учитывая, что вы находитесь на 64-бит, я ожидаю, что вам нужно будет создайте свое приложение специально как 32-бит, а не AnyCPU. Как я уже сказал, Прошло много времени с тех пор, как я это сделал, но когда я это сделал, у Scintilla были только 32-битные двоичные файлы.


Я обошел проблему, скопировав файлы в C:\Windows\SysWOW64

получил идею из сообщения @weston.


Я использую ScintillaNET (порт C#). Он прост в использовании, но это свинья памяти.

https://github.com/jacobslusser/ScintillaNET


enter image description here

нажмите на RUN и выберите MyComputer щелкните правой кнопкой мыши на MyComputer перейти к свойствам затем Нажмите на дополнительные настройки системы .

после этого выберите Дополнительно и нажмите на кнопку Переменные среды.

здесь мы можем добавить ценность и пути.

значение: что вам нравится " например: Scintilla

путь к значению: где хранится загруженная dll ."Например:\D:\prathap\DLL

Путь Скачать :https://scintillanet.codeplex.com/releases

выберите загрузки с правой стороны экрана.

затем в приложении добавьте Dll Scintill в качестве ссылки и другие 2 dll в качестве существующих файлов.

щелкните правой кнопкой мыши на project ADD -- Addexisting files -- затем выберите файлы из локальной системы и убедитесь, что вы сохраняете 2 файла "копировать в выходной каталог = копировать всегда.

запустите приложение, оно будет работа.


Я добавил ссылку на Scintilla.dll вместо SciLexer.dll-и это сработало