类型或命名空间名称' HtmlAgilityPack'无法找到

时间:2016-07-07 23:59:42

标签: c# asp.net-mvc-5

我在尝试发布项目时遇到此错误

  

类型或命名空间名称' HtmlAgilityPack'找不到(你错过了使用指令或汇编引用吗?)

我已尝试卸载并重新安装HtmlAgiltyPack,并安装早期版本。似乎没有任何改变。我可以在HtmlAgilityPack文件夹中看到References。我错过了什么?

修改

添加了错误的屏幕截图 Screen shot of the error

4 个答案:

答案 0 :(得分:1)

我在我的本地进行了测试,并将应用程序发布到Azure而没有任何问题。也许以下步骤可以帮助您确定您身边的问题。

创建一个空的ASP.NET项目。

enter image description here

enter image description here

从Nuget安装HtmlAgilityPack

enter image description here

发布到Azure

enter image description here

enter image description here

使用浏览器测试

enter image description here

我的HtmlAgilityPack参考具有以下属性;

enter image description here

希望这有帮助

答案 1 :(得分:0)

检查参考属性并确保"复制本地"设置为true或始终

答案 2 :(得分:0)

如果HtmlAgilityPack位于references文件夹中,那么您可能没有使用using语句。包含HtmlAgilityPack的正确using语句是:using HtmlAgilityPack;。如果它不在您的文件的顶部以及其他使用语句,那么您可以尝试恢复项目中的nuget包。

答案 3 :(得分:0)

我们经常遇到Nuget声称成功安装软件包的问题,​​但是当代码运行时,我们收到一个错误,指出找不到引用。在这种情况下,我发现的内容将起作用:

  1. 找到Nuget安装的下载的dll文件。
  2. 将整个文件夹复制到服务器上的公共位置
  3. 添加将在发生错误的脚本任务之前运行的脚本任务以设置引用:

        public void Main()
    {
        // putting in a wrapper to load assembly "manually"
        AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
    }
    static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
    {
        if (args.Name.Contains("<name of lost reference>"))
        {
            string path = @"<your location here>";
            return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(path, "<the errant dll"));
        }
        return null;
    }