我們最近在我們的項目中更新了一堆dll,包括HtmlAgilityPack到他們的最新版本。這使得以下代碼開始在第一行開始拋出錯誤。
List<HtmlNode> foundNodes = document.QuerySelectorAll(".divider").ToList();
foreach(HtmlNode node in foundNodes){
doWhatever(node);
}
找不到方法:'System.Collections.Generic.IEnumerable`1 HtmlAgilityPack.HtmlNode.Descendants()'。
堆棧跟踪的最後一行是:
“ 在Fizzler.Systems.HtmlAgilityPack.HtmlNodeOps.b__71(HtmlNode n) ”
QuerySelectorAll返回一個IEnumerable的HtmlNode,但我似乎無法再將其強制轉換為列表。我會冒險猜測現在有一些相關的dll與不兼容的版本(fizzler?)錯過了Descendants
方法?然而,HtmlAgilityPack的NuGet頁面沒有顯示任何依賴關係,我使用的fizzler版本是1.0.0,我認為是正確的。
免責聲明 :我是項目Html Agility Pack的所有者
版本1.5.0已發布,此問題已在v1.5.0-beta5中修復。
這是因為在v1.4.9.5中的方法中添加了默認參數
由於該庫被強烈命名,Fizzler再也找不到這種方法了。
升級HtmlAgilityPack nuget包後,我發生了同樣的錯誤。
我現在解決了從1.4.9.4降級到1.4.9的問題。
我們來看看這個軟件包的下一個版本。