1

我正在开发一个语言翻译程序,我从离线获取信息。我正在使用 Unity 游戏引擎,它使用 Assembly 作为其 IDE。以下是我到目前为止的代码。

class Dictionary
{
    public string Translate(string input, string languagePair, Encoding encoding)
    {
        string url = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", input, languagePair);

        string result = String.Empty;

        using (WebClient webClient = new WebClient())
        {
            webClient.Encoding = encoding;
            result = webClient.DownloadString(url);
        }

        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(result);
        return doc.DocumentNode.SelectSingleNode("//textarea[@name='utrans']").InnerText;
    }
}

但是,在编译时,我收到错误:

Assets/DictionarySp.cs(8,7): error CS0246: The type or namespace name `HtmlAgilityPack' could not be found. Are you missing a using directive or an assembly reference?

我开始做研究,听说 HtmlAgilityPack 是第三方软件,我必须引用 .dll。我下载了 VisualStudio2010 以及 NuGet。在 Visual Studio 中,我单击“管理 NuGet 包”并安装了 HtmlAgilityPack。在 Visual Studio 内部,错误消失了,但是当我尝试在 Assembly 中打开文件时,我仍然收到无法找到命名空间 HtmlAgilityPack 的错误。我正在使用 Unity 游戏引擎,因此我必须从 VisualStudio 文件中获取文件并将其放在不同的文件夹中。是否有一些我遗漏的步骤,或者我需要在汇编中做一些事情来引用 HtmlAgilityPack dll?任何帮助将不胜感激。

4

4 回答 4

2

像 Austin 和 Shakir 所说的那样引用 HtmlAgilityPakc.dll 后,我仍然无法使错误正常工作。我修复了这个错误,不仅引用了 HtmlAgilityPack.dll,而且将 HtmlAgilityPack.dll 放在我的脚本所在的文件夹中。这摆脱了错误。感谢您所有的帮助!

于 2012-10-16T02:28:11.750 回答
1

尝试从 Add References 选项卡中添加 HTMLAgility!

于 2012-10-10T14:11:37.300 回答
1

在项目下,转到 Add References 并确保已添加 HTMLAgilityPack。既然你已经有了using HtmlAgilityPack;,它应该是固定的。

你关于这个主题的其他问题也应该解决这个问题。

于 2012-10-10T14:13:20.253 回答
0

如果您使用的是自定义 Unity 程序集定义文件,则无法在 Visual Studio 中添加对该项目的引用,因为 Unity 在编译时会覆盖这些引用。相反,您需要将 dll 添加到资产文件夹层次结构中。

于 2018-06-21T19:03:57.470 回答