2016-09-28 4 views
2

Я создал проект, в котором я беру слово и использую класс Hunspell.dll для выполнения проверки. Обратите внимание, что я загрузил эту DLL из пакета через студию IDA xamarin (для MAC). Я также загрузил файлы .aff и .dic, необходимые для проверки класса, и добавил их в мою папку отладки, но когда я скомпилирую приложение, я получаю следующую ошибку: System.EntryPointNotFoundException. Если у вас есть идеи, пожалуйста, дайте мне знать.System.EntryPointNotFoundException при использовании файла aff

Это мой код:

using NHunspell; 

public static void Main(string[] args) 
{ 
    string line = Console.ReadLine(); 
    using (Hunspell hunspell = new Hunspell("en_us.aff", "en_us.dic")) 
    { 
     bool correct = hunspell.Spell(line); 
     Console.WriteLine(line + " is spelled " + (correct ? "correct" : "not correct")); 
    }  
} 
+1

Вы используете порт [NHunspell] (http://www.crawler-lib.net/nhunspell) для .NET-сервера _Hunspell_? Если да, укажите в вопросе. Также рассмотрите отправку всей трассировки стека вашего 'System.EntryPointNotFoundException'. Помогает выяснить проблему. Благодарю. –

+0

@ f.nasim Извиняюсь, да, я использую NHunspell – paul590

ответ

3

Предполагая, что вы используете NHunspell порт Hunspell. Скорее всего, ваша родная библиотека Hunspell не является желаемой (архитектура процессора несовместима с чем-то.) Эти проблемы очень трудно диагностировать, не зная точную среду и библиотеки, которые вы используете.

я, однако, попробовал ваш пример, установив NHunspell с NuGet в Visual Studio и загрузив утвердительный и DIC файлы вручную. Он работает отлично. Я предлагаю вам лучше попробовать установить NHunspell из NuGet. Xamarin Studio также supports Управление пакетами NuGet. NuGet заботится о нахождении правильной родной библиотеки для вашей среды, разворачивая их должным образом, и т.д.

Update: Для Xamarin отличных ОС Windows платформ.

NHunspell - это .NET-обтекатель библиотеки Hunspell, написанный на C/C++. Чтобы NHunspell работал правильно, должна существовать сборка библиотеки Hunspell для этой конкретной среды, которую NHunspell может вызывать. Ксамарин не имеет к этому никакого отношения.

According to the NHunspell author, до февраля 2015 г. такой сборки для платформ, отличных от Windows, не существует. Последние release из NHunspell появились в марте 2015 года. Поэтому можно с уверенностью предположить, что NHunspell доступен только для Windows до сих пор. Поэтому даже установка NHunspell с NuGet не приносит никакой пользы.

Я сам пытался использовать NHunspell от MonoDevelop в Ubuntu 16.04. Установка прошла успешно с NuGet, однако при запуске я получил точно такую ​​же ошибку: System.EntryPointNotFoundException. Поскольку MonoDevelop и Xamarin Studio используют ту же среду выполнения .NET (так называемый Mono), то то же самое должно быть справедливо для Xamarin.

+0

Спасибо за ваш ответ, я действительно протестировал свой код также на visual studio 2012, и он работает без проблем. Тем не менее, я все еще получаю ошибку на студии Xamarin, даже если скачал пакет NHunspell через пакет Nuget. – paul590

+0

Какая ошибка сейчас? Старый: 'System.EntryPointNotFoundException'? –

+0

Здравствуйте @ f.masim К сожалению, ошибка все тот же – paul590