Abbiamo recentemente aggiornato un gruppo di dll nel nostro progetto, incluso HtmlAgilityPack per le loro ultime versioni. Questo ha fatto sì che il seguente codice che stava funzionando inizi a lanciare errori sulla prima riga.HTMLAgilityPack QuerySelectorTutte le eccezioni di lancio, la mancata corrispondenza della versione di dll di Fizzler?
List<HtmlNode> foundNodes = document.QuerySelectorAll(".divider").ToList();
foreach(HtmlNode node in foundNodes){
doWhatever(node);
}
metodo non trovato: 'System.Collections.Generic.IEnumerable`1 HtmlAgilityPack.HtmlNode.Descendants()'.
L'ultima riga della traccia dello stack è:
"a Fizzler.Systems.HtmlAgilityPack.HtmlNodeOps.b__71 (HtmlNode n)"
Il querySelectorAll restituisce un IEnumerable di HtmlNode, tuttavia Non riesco a essere in grado di lanciarlo in una lista più. Mi azzarderei a indovinare c'è qualche dll correlata con una versione incompatibile ora (fizzler?) Manca il metodo Descendants
? Tuttavia lo NuGet page per HtmlAgilityPack non mostra dipendenze e la versione di fizzler che sto usando è 1.0.0 che ritengo sia corretta.
Avete provato a disinstallare sia 'HtmlAgilityPack' che' Fizzler', e installando le loro versioni aggiornate? – Veverke
Sì, inutilmente. Guardando più in profondità all'eccezione sembra che la '' Fizzler.Systems.HtmlAgilityPack' dll venga caricata da 'C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files' ed è una vecchia versione, non è sicuro perché. Ho provato a cancellare la cartella e ricaricare il progetto ma in qualche modo è la stessa cosa. Abbiamo iniziato a utilizzare AngleSharp ora perché il suo utilizzo è molto simile, quindi è stato un semplice passaggio. – James
L'uso di 'AngleSharp' è stata la mia prima ipotesi (' QuerySelectorAll' mi è familiare). Suggerisco di riprodurre il problema: creare un'app console, installare i pacchetti richiesti (ultime versioni) ed emettere una semplice chiamata 'QuerySelectorAll'. Succede anche lì? In caso contrario (e probabilmente non lo farà), forse si può anche cancellare il file 'packages.config' e quindi disinstallare tutti i pacchetti rilevanti? (l'ordine potrebbe essere il contrario - disinstallare e quindi eliminare il file) e provare a installare di nuovo? – Veverke