3

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

1 回答 1

4

假设您使用的是 Hunspell 的NHunspell端口。很可能您的本机 Hunspell 库不是您想要的(一种 CPU 架构不匹配的东西。)如果不知道您的确切环境和您正在使用的库,这个问题很难诊断。

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

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

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

根据 NHunspell 作者的说法,截至 2015 年 2 月,还没有针对非 Windows 平台的此类构建。NHunspell的最后一个版本出现在 2015 年 3 月。因此可以安全地假设 NHunspell 到目前为止仅适用于 Windows。因此,即使使用 NuGet 安装 NHunspell 也无济于事。

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

于 2016-09-29T00:07:20.583 回答