FSharp.Data

时间:2018-06-25 14:23:32

标签: f#-data

我试图在FSharp.Data中使用JsonProvider,并且在运行时得到以下信息:

  • $ exception {“未找到方法:'Microsoft.FSharp.Control.FSharpAsync`1 FSharp.Data.Runtime.IO.asyncReadTextAtRuntimeWithDesignTimeRules(System.String,System.String,System.String,System.String,System.String )'。“} System.MissingMethodException     ClassName空字符串
  • 数据{System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal}     HResult -2146233069 int     HelpLink空字符串
  • InnerException null System.Exception     MemberName空字符串     消息“找不到方法:'Microsoft.FSharp.Control.FSharpAsync`1 FSharp.Data.Runtime.IO.asyncReadTextAtRuntimeWithDesignTimeRules(System.String,System.String,System.String,System.String,System.String)'。”。串     签名空字节[]     源“ OnLineDataAccess”字符串     位于E:\ Film Data Exploration \ Film Data Exploration \ Film Data Exploration \ Global.asax.cs:line 24“ string中的OnLineDataAccess.TheMovieDatabase.GetSonyPicturesClassics()\ r \ n在Film_Data_Exploration.MvcApplication.Application_Start()中的r \ n li>
  • TargetSite {FSharp.Data.Runtime.BaseTypes.IJsonDocument GetSonyPicturesClassics()} System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}
  • 静态成员
  • 非公共成员

我可以通过切换到早期版本的FSharp,Data使其消失,但是随后我遇到了其他问题(特别是HtmlDocumnent.Elements无法正常工作)。所以我想也许我从Visual Studio 15切换到Visual Studio 17可能会解决问题,但没有解决。

有人有什么主意吗?

1 个答案:

答案 0 :(得分:0)

尝试在LINQPad中使用FSharp.Data时,我遇到了具有相同堆栈跟踪的相同错误。我通过安装FSharp.Core版本 4.6.0.0 的NuGet软件包而不是LINQPad默认的4.4.0.0来修复此问题。有道理的是,FSharp.Data的更高版本将依赖于FSharp.Core的较新版本中的某些内容。我不确定LINQPad的安装从何处获得了如此古老的版本。

您需要guidance which recommends always explicitly referencingFSharp.Core版本的软件包:

  

始终通过NuGet包引用FSharp.Core

     

现在总是通过the NuGet package引用FSharp.Core。

     

某些F#库模板使用隐式FSharp.Core包   .NET SDK选择其中的一个参考,例如this kind of thing。您   通常应使用显式引用,尤其是在创建时   库。

     

如果您使用的是旧式项目文件,请参见信息   在下面。

     

如果使用新型.NET SDK项目文件,请使用:

     

<PackageReference Update="FSharp.Core" Version="4.5.0" />

该指南中的其他标题项目包括:

  • 不要将FSharp.Core与库捆绑在一起
  • 始终将FSharp.Core部署为已编译应用程序的一部分
  • 始终通过NuGet包引用FSharp.Core
  • 使您的FSharp.Core引用明确
  • 库应针对FSharp.Core的较低版本
  • 应用程序应针对更高版本的FSharp.Core
  • 不要假定FSharp.Core位于GAC中