我创建了一个项目,在其中输入一个单词,然后使用Hunspell.dll类进行校验。请注意,我是通过xamarin Studio IDE(FOR MAC)从软件包中下载此dll的。我还下载了该类检查单词所需的.aff和.dic文件,并将它们添加到我的调试文件夹中,但是当我编译该应用程序时,出现以下错误:System.EntryPointNotFoundException。如果您有任何想法,请告诉我。

这是我的代码:

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"));
    }
}

最佳答案

假设您正在使用Hunspell的NHunspell端口。很可能您的本机Hunspell库不是所需的库(一种CPU体系结构不匹配的东西。)在不知道确切环境和所用库的情况下,很难诊断此问题。

但是,我通过在Visual Studio中使用NuGet安装NHunspell并手动下载aff和dic文件来尝试您的示例。运行正常。我建议您最好尝试从NuGet安装NHunspell。 Xamarin Studio还supports NuGet软件包管理。 NuGet会为您的环境找到合适的本机库,并正确部署它们,等等。

更新:对于Windows以外的平台上的Xamarin。

NHunspell是用C / C ++编写的Hunspell库的.NET包装。为了使NHunspell正常工作,必须为NHunspell能够调用的特定环境构建Hunspell库。 Xamarin与此无关。

According to the NHunspell author,直到2015年2月,没有针对非Windows平台的此类构建。 NHunspell的最后一个release出现在2015年3月。因此可以放心地假设NHunspell到目前为止仅可用于Windows。因此,即使使用NuGet安装NHunspell也没有任何好处。

我本人尝试在Ubuntu 16.04中使用MonoDevelop中的NHunspell。 NuGet安装成功,但是在运行时,出现了完全相同的错误:System.EntryPointNotFoundException。由于MonoDevelop和Xamarin Studio使用相同的.NET运行时(称为Mono),因此Xamarin也应如此。

关于c# - 使用aff文件时出现System.EntryPointNotFoundException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39758616/

10-09 18:28