如何在C#项目中使用Scintilla .NET?

Jas*_*Cav 37 .net c# scintilla visual-studio

我试图在项目中使用Scintilla .NET(我想要一个好的编辑器+语法高亮等).不幸的是,当我在项目中引用二进制文件时,我似乎无法实际使用Scintilla控件.我得到两个不同的错误.

  1. 第一个发生在添加SciLexer.dll作为我的项目的引用时.我收到一条消息: 无法添加对SciLexer.dll的引用.请确保该文件是可访问的,并且它是有效的程序集或COM组件.

  2. 当我尝试使用ScintillaNET.dll中的控件时,会发生第二个错误.如果我尝试将组件拖到表单中,我会收到以下消息:无法创建组件Scintilla.错误消息如下:System.ComponentModel.Win32Exception:%1不是ScintillaNet.Scintilla.get_CreateParams()中的有效Win32应用程序

任何这些问题的帮助将不胜感激.为了记录,我正在运行在64位Windows 7平台上运行的Visual Studio 2008.

谢谢.

Tim*_*son 26

自从我使用Scintilla以来已经有一段时间了,但我的理解是SciLexer.dll是一个完全原生的DLL,这就是为什么你不能从Visual Studio添加对它的引用.

相反,您应该"安排"SciLexer.dll在运行时出现在正确的目录中,以便ScintillaNET.dll可以加载它.最安全的方法是将SciLexer.dll作为普通文件(而不是参考)添加到Visual Studio项目中,然后更改文件的属性,以便在构建项目时将其复制到输出目录.

鉴于你是64位,我希望你需要专门构建你的应用程序32位而不是AnyCPU.正如我所说,自从我这样做已经有一段时间了,但是当我这样做时,Scintilla只有32位二进制文​​件.