2010-03-06 29 views
33

Tôi đang cố gắng sử dụng Scintilla .NET trong một dự án (Tôi muốn có một trình soạn thảo tốt + làm nổi bật cú pháp, v.v.). Thật không may, khi tôi tham khảo các tập tin nhị phân trong dự án của tôi, tôi dường như không thể sử dụng các điều khiển Scintilla. Tôi nhận được hai lỗi khác nhau.Làm thế nào để sử dụng Scintilla .NET trong dự án C#?

  1. Đầu tiên xảy ra khi thêm SciLexer.dll như một tài liệu tham khảo cho dự án tôi. Tôi nhận được thông báo cho biết: Tham chiếu đến SciLexer.dll có thể không được thêm vào. Vui lòng đảm bảo rằng tệp có thể truy cập được và đó là một cấu phần COM hoặc hợp lệ hợp lệ.

  2. Lỗi thứ hai xảy ra khi tôi cố gắng sử dụng các điều khiển từ ScintillaNET.dll. Nếu tôi cố gắng kéo thành phần vào một biểu mẫu, tôi nhận được thông báo sau: Không thể tạo thành phần Scintilla. Các thông báo lỗi sau: System.ComponentModel.Win32Exception:% 1 không phải là một ứng dụng Win32 hợp lệ tại ScintillaNet.Scintilla.get_CreateParams()

Bất kỳ sự giúp đỡ với một trong những vấn đề này sẽ được nhiều đánh giá cao. Đối với bản ghi, tôi đang chạy Visual Studio 2008 chạy trên nền tảng Windows 7 64 bit.

Cảm ơn.

+8

Bạn có thực sự thích ICSharp.TextEditor là một phần của SharpDevelop, một IDE miễn phí cho phát triển .NET. Trình soạn thảo này khá mạnh mẽ, đầy đủ mã C#, hoạt động như một nét duyên dáng trên 32- và hệ thống 64-bit - "nó chỉ hoạt động". Tải nó ở đây http://www.icsharpcode.net/OpenSource/SD/Default.aspx và lấy dự án con ICSharpCode.TextEditor từ bên trong giải pháp lớn –

Trả lời

26

Đã một chút thời gian kể từ khi tôi sử dụng Scintilla, nhưng sự hiểu biết của tôi là SciLexer.dll là một DLL hoàn toàn nguyên gốc, đó là lý do tại sao bạn không thể thêm tham chiếu đến nó từ Visual Studio.

Thay vào đó, bạn nên 'sắp xếp' cho SciLexer.dll xuất hiện trong thư mục bên phải trong thời gian chạy để nó có thể được tải bởi ScintillaNET.dll. Cách an toàn nhất để làm điều này là thêm SciLexer.dll vào dự án Visual Studio của bạn dưới dạng tệp đơn giản (không phải là tham chiếu), sau đó thay đổi thuộc tính trên tệp để sao chép vào thư mục đầu ra khi dự án của bạn được tạo.

Cho rằng bạn đang sử dụng 64 bit, tôi hy vọng bạn cần phải build your app specifically as 32-bit and not AnyCPU. Như tôi đã nói, nó đã được một thời gian kể từ khi tôi đã làm điều này, nhưng khi tôi đã làm, Scintilla chỉ có 32-bit nhị phân.

+0

Điểm tốt - sao chép vào thư mục đầu ra giải quyết vấn đề tại thời gian chạy, nhưng điều đó không giúp Visual Studio. Có lẽ gắn bó nó trong con đường là những gì tôi đã làm cuối cùng. :) –

+0

Đối với các dự án thiết lập Visual Studio, bạn cũng sẽ phải thêm "Tệp" vào đầu ra vì thành phần đầu ra của dự án sẽ không kéo trong SciLexer.dll chỉ với bản sao dự án của khách hàng vào thư mục đầu ra. – Shiv

3

tôi đã tròn vấn đề này bằng cách sao chép các tập tin vào C:\Windows\SysWOW64

Got ý tưởng từ bài @ weston của.

+1

Nói chung, đây có thể không phải là một tùy chọn để cài đặt ứng dụng khách (thực hành bảo mật tốt nhất, có nhiều cài đặt trên cùng một máy - bạn không thể cài đặt hai phiên bản khác nhau bằng cách sử dụng chiến lược này). – Shiv

-1

tôi đã thêm tham chiếu đến Scintilla.dll thay vì SciLexer.dll - và nó đã hoạt động

+0

Tôi nghĩ rằng bạn đã cài đặt một số công cụ được thêm vào biến đường dẫn và chứa một SciLexer.dll (ví dụ: TortoiseSVN). Trong trường hợp đó, dll từ vị trí này sẽ được chọn và công cụ của bạn sẽ không hoạt động trên một máy được cài đặt sạch. Để kiểm tra điều này, hãy mở một dấu nhắc lệnh và nhập 'where SciLexer.dll'. Nếu bạn tìm thấy một cái gì đó đổi tên tập tin tạm thời và khởi động lại công cụ của bạn. Cuối cùng nhưng không kém chạy 'ProcessMonitor' và kiểm tra từ nơi SciLexer.dll của bạn sẽ được tải. – Oliver

1

Tôi sử dụng ScintillaNET (C# port). Nó rất dễ sử dụng, nhưng nó là một bộ nhớ hog.

https://github.com/jacobslusser/ScintillaNET

+0

Điều này là dành cho bất cứ ai đọc bài viết của bạn Dan. Nếu bạn (họ) gặp sự cố khi cuộn tự động điều khiển trình chỉnh sửa ScintillaNET, hãy xem bài đăng này: http://stackoverflow.com/questions/2898722/how-make-autoscroll-in-scintilla/33172398#33172398 –

0

enter image description here

Bấm vào RUN và chọn nhấp chuột phải vào MyComputer MyComputer Đến Thuộc tính sau đó Bấm vào Advanced System Settings.

Sau đó chọn Biến môi trường nâng cao và nhấp chuột vào môi trường.

Ở đây chúng tôi có thể thêm giá trị và đường dẫn.

Giá trị: số tiền bạn muốn "Ví dụ: Scintilla

Đường dẫn giá trị: nơi dll tải xuống được lưu giữ." EG: D: \ prathap \ DLL \

Tải Đường dẫn: https://scintillanet.codeplex.com/releases

Chọn tải từ phía bên tay phải trên màn hình.

Sau đó, trong ứng dụng thêm Dll Scintill làm tham chiếu và 2 dll khác dưới dạng tệp hiện có.

Nhấp chuột phải vào Thanh dự án - file Addexisting - sau đó chọn tập tin từ hệ thống địa phương và đảm bảo rằng bạn giữ cho 2 tác phẩm "Sao chép vào thư mục Output = Sao chép Luôn

Sau đó chạy ứng dụng nó sẽ.

Các vấn đề liên quan