使用aff文件时System.EntryPointNotFoundException

时间:2016-09-28 22:26:30

标签: c# xamarin-studio nhunspell

我创建了一个项目,我在其中使用了一个单词并使用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"));
    }    
}

1 个答案:

答案 0 :(得分:4)

假设您使用的是Hunspell的NHunspell端口。您的本机Hunspell库很可能不是理想的库(CPU架构不匹配)。如果不了解您的确切环境和正在使用的库,这些问题很难诊断。

然而,我已尝试通过在Visual Studio中使用 NuGet 安装NHunspell并手动下载 aff dic 文件来尝试您的示例。它工作得很好。我建议你最好尝试从NuGet安装NHunspell。 Xamarin Studio还supports NuGet包管理。 NuGet负责为您的环境找到合适的本机库,正确部署它们等等。

更新适用于Windows以外平台的Xamarin。

NHunspell是一个围绕Hunspell库的.NET包装器,用C / C ++编写。为了使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也应如此。