Я пробую f # на Mac и столкнулся с проблемой с очень простым скриптом.Я следую этому руководству , однако оно приводит к ошибкам. Descendants ["a"].
Интересно, что VS распознает .Descendants как допустимый метод результатов, но во время выполнения (пытаетсяпросто потомки без параметров) Я получаю:
error CS1061: 'HtmlDocument' does not contain a definition for 'Descendants' and no
extension method 'Descendants' accepting a first argument of type 'HtmlDocument' could
be found (are you missing a using directive or an assembly reference?)
Кажется, что FSharp.Data импортируется только частично или что-то.Интересно, что HtmlDocument работает, а расширения - нет.
Есть идеи, как это исправить?
Редактировать: code
// Learn more about F# at http://fsharp.org
open System
open FSharp.Data
[<EntryPoint>]
let main argv =
let results = HtmlDocument.Load("http://www.google.co.uk/search?q=FSharp.Data")
let links =
results.Descendants "a"
|> Seq.choose (fun x ->
x.TryGetAttribute("href")
|> Option.map (fun a -> x.InnerText(), a.Value())
)
0 // return an integer exit code
Редактировать2: Я скачал FSharp.Data сnuget вручную, и я могу запустить приведенный ниже скрипт в fsharpi.Я не знаю, в чем разница между этим и тем, что делает визуальная студия?
#r "./FSharp.Data.2.4.6/lib/net45/FSharp.Data.dll"
open FSharp.Data
let results = HtmlDocument.Load("http://www.google.co.uk/search?q=FSharp.Data")
let d= results.Descendants "a"
Редактировать 3: Различия между бегом в fsharpi и vs:
- fsharpi использует моно, в то время как VS использует dotnet (то есть .net core 2)
- nuget скачал FSharp.Core 4.0.0.1, в то время как VS использует 4.3.4
Я не могу показатьсязаставить VS использовать FSharp.Core 4.0.0.1.Даже если я добавлю конкретную версию, он все еще использует 4.3.4