我们最近在我们的项目中更新了一堆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,我认为是正确的。
答案 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找不到这种方法。