HTMLAgilityPack QuerySelector Все выбрасывается исключение, возможно, Fizzler несоответствие версии DLL?
Недавно мы обновили кучу библиотек в нашем проекте, включая HtmlAgilityPack до их последних версий. Это заставило следующий код, который работал, начать выдавать ошибки в первой строке.
List<HtmlNode> foundNodes = document.QuerySelectorAll(".divider").ToList();
foreach(HtmlNode node in foundNodes){
doWhatever(node);
}
Метод не найден: 'System.Collections.Generic.IEnumerable`1 HtmlAgilityPack.HtmlNode.Descendants()'.
Последняя строка трассировки стека:
"at Fizzler.Systems.HtmlAgilityPack.HtmlNodeOps.b__71 (HtmlNode n)"
QuerySelectorAll возвращает IEnumerable HtmlNode, однако, похоже, я больше не могу привести его к списку. Я рискнул бы предположить, что есть некоторая связанная dll с несовместимой версией теперь (fizzler?), Пропускающей Descendants
метод? Однако страница NuGet для HtmlAgilityPack не показывает никаких зависимостей, и используемая мной версия fizzler - 1.0.0, которую я считаю верной.
3 ответа
Со мной происходит та же ошибка после того, как я обновил пакет nuget HtmlAgilityPack.
На данный момент я решил понизить рейтинг с 1.4.9.4 до 1.4.9.
Давайте посмотрим на следующие версии этого пакета.
Отказ от ответственности: я владелец проекта Html Agility Pack
Была выпущена версия 1.5.0, и эта проблема была исправлена в v1.5.0-beta5.
Это было вызвано тем, что в метод v1.4.9.5 был добавлен параметр по умолчанию
Поскольку библиотека строго названа, Fizzler больше не мог найти этот метод.
У меня была очень похожая ошибка, и откат ее с 1.4.9.5 до версии 1.4.9 разрешил ее, хотя я не совсем уверен, почему.