2010-03-06 46 views
33

我試圖在一個項目中使用Scintilla .NET(我想要一個好的編輯器+語法高亮等)。不幸的是,當我在項目中引用二進制文件時,我似乎無法真正使用Scintilla控件。我得到兩個不同的錯誤。如何在C#項目中使用Scintilla .NET?

  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。

謝謝。

+8

您是否考慮檢查替代品?我真的很喜歡SharpDevelop的一部分 - 一個免費的.NET開發IDE的一部分的ICSharp.TextEditor編輯器功能強大,完全是C#代碼,和「64位系統 - 」它只是工作「。在這裏獲取它http://www.icsharpcode.net/OpenSource/SD/Default.aspx並從大型解決方案中獲取ICSharpCode.TextEditor子項目 – 2010-03-06 22:09:35

回答

26

從我使用Scintilla開始已經有一段時間了,但我的理解是SciLexer.dll是一個完全本地的DLL,這就是爲什麼您無法從Visual Studio添加對其的引用。

相反,您應該「安排」SciLexer.dll在運行時出現在正確的目錄中,以便它可以通過ScintillaNET.dll加載。最安全的方法是將SciLexer.dll作爲普通文件(不作爲參考)添加到Visual Studio項目中,然後更改文件的屬性以在項目生成時將其複製到輸出目錄。

鑑於您使用的是64位,我預計您需要build your app specifically as 32-bit and not AnyCPU。正如我所說,自從我這樣做以來已經有一段時間了,但是當我這樣做時,Scintilla只有32位二進制文​​件。

+0

好點 - 複製到輸出目錄在運行時解決了這個問題,但這對Visual Studio沒有幫助。也許堅持它的道路是我最終做的。 :) – 2010-03-06 23:56:30

+0

對於Visual Studio安裝項目,您還需要將「文件」添加到輸出中,因爲項目輸出組件不會將SciLexer.dll拉到客戶端項目並複製到輸出文件夾。 – Shiv 2015-04-06 22:52:02

3

我得到全面的問題,通過複製文件到C:\Windows\SysWOW64

得到了@韋斯頓後的想法。

+1

一般而言,這可能不是客戶端安裝的選項(最佳安全實踐,在同一臺計算機上安裝多個安裝 - 例如,您不能使用此策略安裝兩個不同版本)。 – Shiv 2015-04-06 22:50:25

-1

我加入參考Scintilla.dll代替SciLexer.dll - 和它的工作

+0

我想你已經安裝了一些自己添加到路徑變量幷包含SciLexer.dll(例如TortoiseSVN)的工具。在這種情況下,該位置的dll將被挑選出來,並且您的工具無法在乾淨的已安裝機器上運行。要檢查這個打開命令提示符並輸入'where SciLexer.dll'。如果您發現暫時重命名該文件並再次啓動您的工具。最後但並非最不重要的是運行'ProcessMonitor'並檢查SciLexer.dll的加載位置。 – Oliver 2014-01-13 07:12:50

1

我使用ScintillaNET(C#端口)。它很容易使用,但它是一個記憶豬。

https://github.com/jacobslusser/ScintillaNET

+0

這是給任何閱讀你的文章丹的人。如果您(他們)在自動滾動ScintillaNET編輯器控件時遇到困難,請參閱以下文章:http://stackoverflow.com/questions/2898722/how-make-autoscroll-in-scintilla/33172398#33172398 – 2015-10-16 14:05:51

0

enter image description here

點擊運行並選擇我的電腦進入我的電腦右鍵點擊屬性,然後 單擊高級系統設置。

然後選擇高級並單擊環境變量。

在這裏我們可以添加值和路徑。

價值:你什麼都喜歡 「如:Scintilla的

值路徑:在下載DLL保持。」 EG:d:\ prathap \ DLL \

下載路徑:https://scintillanet.codeplex.com/releases

在屏幕上選擇從右側的下載。

然後在應用程序中添加Scintill Dll作爲參考和其他2 dll作爲現有文件。

右鍵單擊項目ADD - Addexisting文件 - 然後選擇從本地系統中的文件,並確保您保留2個文件「複製到輸出目錄=複製始終

然後運行該應用程序會的。工作

相關問題