HTMLAgilityPack QuerySelectorAll抛出异常,可能是Fizzler dll版本不匹配?

时间:2016-07-04 10:24:15

标签: c# html-agility-pack fizzler

我们最近在我们的项目中更新了一堆dll,包括HtmlAgilityPack到他们的最新版本。这使得以下代码开始在第一行开始抛出错误。

List<HtmlNode> foundNodes = document.QuerySelectorAll(".divider").ToList();

foreach(HtmlNode node in foundNodes){
    doWhatever(node);
}

找不到方法:&#39; System.Collections.Generic.IEnumerable`1 HtmlAgilityPack.HtmlNode.Descendants()&#39;。

堆栈跟踪的最后一行是:

&#34; 在Fizzler.Systems.HtmlAgilityPack.HtmlNodeOps.b__71(HtmlNode n)&#34;

QuerySelectorAll正在返回一个IEnumerable的HtmlNode,但我似乎无法将其转换为列表。我会冒险猜测现在有一些相关的dll与不兼容的版本(fizzler?)错过了Descendants方法?然而,HtmlAgilityPack的NuGet page显示没有依赖关系,我使用的最新版本是1.0.0,我认为是正确的。

3 个答案:

答案 0 :(得分:10)

升级HtmlAgilityPack nuget包后,我发生了同样的错误。

我现在解决了从1.4.9.4降级到1.4.9的问题。

让我们看看这个软件包的下一个版本。

答案 1 :(得分:1)

我有一个非常类似的错误,并将其从1.4.9.5回滚到版本1.4.9解决了它,但并不完全确定原因。

答案 2 :(得分:1)

免责声明:我是该项目的所有者Html Agility Pack

版本1.5.0已经发布,此问题已在v1.5.0-beta5中修复。

这是因为在v1.4.9.5中的方法中添加了默认参数

由于该库被强烈命名,因此Fizzler找不到这种方法。