2016-07-04 17 views
5

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.

+0

Avete provato a disinstallare sia 'HtmlAgilityPack' che' Fizzler', e installando le loro versioni aggiornate? – Veverke

+0

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

+0

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

risposta

10

Sta accadendo lo stesso errore con me dopo aver aggiornato il pacchetto nuget HtmlAgilityPack.

Per ora ho risolto il downgrade da 1.4.9.4 a 1.4.9.

Vediamo le prossime versioni di questo pacchetto.

+0

Ciao Alberto, grazie per la risposta. Sfortunatamente l'ho già provato e non ha risolto il problema per me quindi non ho intenzione di contrassegnarlo come risposta (ma upvoted) – James

+1

Hai rimosso i file 1.4.9.4 dalla cartella dei pacchetti? –

1

Ho avuto un errore molto simile, e il rollback dalla versione 1.4.9.5 alla versione 1.4.9 l'ho risolto, non del tutto sicuro del perché.

1

Diniego: Sono il proprietario del progetto Html Agility Pack

La versione 1.5.0 è stato rilasciato, e questo problema è stato risolto nel v1.5.0-beta5.

è stato causato a causa di un parametro predefinito è stato aggiunto a un metodo nella v1.4.9.5

Dal momento che la libreria è un nome sicuro, Fizzler non riusciva a trovare più questo metodo.

Problemi correlati