我正在开发一个语言翻译程序,我可以从这里获取离线信息。我正在使用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?任何帮助将不胜感激。
答案 0 :(得分:2)
在引用像Austin和Shakir之类的HtmlAgilityPakc.dll之后,我仍然无法得到错误。我修复了这个错误,不仅引用了HtmlAgilityPack.dll,还将HtmlAgilityPack.dll放在我脚本的文件夹中。这摆脱了错误。感谢您的所有帮助!
答案 1 :(得分:1)
尝试从“添加引用”选项卡添加HTMLAgility!
答案 2 :(得分:1)
在该项目下,转到“添加引用”并确保已添加HTMLAgilityPack。
由于您已经有using HtmlAgilityPack;
,因此应该修复它。
关于此主题的other问题也应解决此问题。
答案 3 :(得分:0)
如果您使用自定义的Unity Assembly Definition文件,则无法在Visual Studio中向该项目添加引用,因为Unity编译时会覆盖这些引用。相反,您需要将dll添加到资产文件夹层次结构中。