0

Problem running Plotly.NET on F# Interactive. (VS2019, FSharp Core 7.0.0, Plotly.NET 3.0.1, TargetFramework: net472)

#r C:\....\.nuget\packages\plotly.net\3.0.1\lib\netstandard2.0\Plotly.NET.dll"

open Plotly.NET
let xData = [0. .. 10.]
let yData = [0. .. 10.]
let myFirstChart = Chart.Point(xData,yData)

Gives an error: " C:\...\AppData\Local\Temp\1\unknown(1,1): error FS3216: type 'Plotly.NET.GenericChart+GenericChart' not found in assembly 'Plotly.NET, Version=3.0.0.0, Culture=neutral, PublicKeyToken=.......'. A possible cause may be a version incompatibility. You may need to explicitly reference the correct version of this assembly to allow all referenced components to use the correct version."

What should be correct configuration for environment to get that running?


RAh
  • 11
  • 3

1 Answers1

1

I'm not sure why you mention "TargetFramework: net472". Also I'm puzzled by your mention of "FSharp Core 7.0.0", since F# interactive is going to be tied to some specific version of F#, for VS 2019 that won't be 7.0.

It's better to use the new syntax for referencing a nuget package from a script:

#r "nuget: Plotly.NET"

I tried your code in VS 2019 (referencing the nuget package as above) and still got a weird error. I then went to Tools | Options | F# Tools | F# interactive and changed the option "Use .NET Core Scripting" from false to true. I then reset the F# interactive session to make the change take effect, and tried your code again, and it worked.

> let myFirstChart = Chart.Point(xData,yData);;
Binding session to 'C:/Users/jimfo/.nuget/packages/plotly.net/3.0.1/lib/netstandard2.0/Plotly.NET.dll'...
Binding session to 'C:/Users/jimfo/.nuget/packages/dynamicobj/2.0.0/lib/netstandard2.0/DynamicObj.dll'...
val myFirstChart: GenericChart.GenericChart =
  Chart
    (Plotly.NET.Trace2D, Plotly.NET.Layout, Plotly.NET.Config,
     Plotly.NET.DisplayOptions)

I didn't bother testing 32 bit vs 64 bit or seeing what happens in VS 2022.

I don't know what the errors are about, I have seen some strange errors lately given the mix of F# compiler versions, FSharp.Core versions, VS versions (think of all the patched versions), and sometimes you have to just fool around a bit until you get the right combination that works.

Jim Foye
  • 1,918
  • 1
  • 13
  • 15
  • Many thanks you for answer! .NET environment is quite a mess for beginner. In my configuration, It's easier to download packages using Nuget Package Manager. I cleaned all Nuget cache and downloaded packages for FSharp.Core 5.0 (right, as it is on VS 2019), referenced to local-packages folder and now I can see Plotly graph as a blank white browser window. Is it possible to use Plotly.NET in almost offline environment? – RAh Dec 21 '22 at 08:53
  • I think so; it's wrapping a Javascript library but I think it works fine locally. – Jim Foye Dec 21 '22 at 18:25