Abot mit dnx 4.5.1 verwenden
Richtige Version des HtmlAgilityPack
Das Nuget-Paket von Abot beinhaltet eine eigene Version des HtmlAgilityPack. Will man in seiner Applikation selber noch etwas mit dem HtmlAgilityPack machen, so ist es wichtig, dass die genau gleiche Version des HtmlAgilityPack's referenziert wird wie Abot verwendet.
In meinem Fall ist folgendes der Fall:
- Abot Version 1.5.0.110
- HtmlAgilityPack 1.4.7
Die entsprechenden Referenzen müssen im project.json im Abschnitt dependencies festgelegt werden.
Richtige Registrierungsreihenfolge für Dependencies
Genau gleich wie bereits in früheren .NET Versionen hat Abot auch ein Problem, wenn die Dependencies in falscher Reihenfolge registriert werden (siehe http://stackoverflow.com/questions/22671878/add-htmlagility-pack-and-abot-web-crawler-to-project)
Bei mir hat sich das so geäussert, dass ich nach dem Starten meiner Console Applikation nachfolgende Fehlermeldung erhalten habe:
Crawl of http://www.retschgi.com/ completed with error: System.MissingFieldException: Field not found: "HtmlAgilityPack.HtmlDocument.OptionMaxNestedChildNodes".
At Abot.Poco.CrawledPage.InitializeHtmlAgilityPackDocument()
At Abot.Poco.CrawledPage.<.ctor>b__0()
At System.Lazy`1.CreateValue()
At System.Lazy`1.LazyInitValue()
At System.Lazy`1.get_Value()
At Abot.Core.HapHyperLinkParser.GetHrefValues(CrawledPage crawledPage)
At Abot.Core.HyperLinkParser.GetLinks(CrawledPage crawledPage)
At Abot.Crawler.WebCrawler.ParsePageLinks(CrawledPage crawledPage)
At Abot.Crawler.WebCrawler.ProcessPage(PageToCrawl pageToCrawl)
Nachfolgendes Vorgehen hat geholfen:
1. HtmlAgilityPack in project.json registrieren und speichern
{
...
"dependencies": {
"HtmlAgilityPack": "1.4.7",
},
...
}
2. Abot in project.json registrieren und speichern
{
...
"dependencies": {
"HtmlAgilityPack": "1.4.7",
"Abot": "1.5.0.110"
},
...
}