获取缺少方法错误FSharp.Data

问题描述 投票:1回答:1

我试图使用JsonProvider在FSharp.Data并在运行时,我得到如下:

  • $ {例外“未找到方法: 'Microsoft.FSharp.Control.FSharpAsync`1 FSharp.Data.Runtime.IO.asyncReadTextAtRuntimeWithDesignTimeRules(System.String,System.String,System.String,System.String,System.String)'。 “} system.missingMethodException而类名空字符串
  • 数据{} System.Collections.ListDictionaryInternal {System.Collections.IDictionary} System.Collections.ListDictionaryInternal的HResult -2146233069 INT HELPLINK空字符串
  • 没有找到的InnerException空的System.Exception成员名称空字符串消息“方法:“Microsoft.FSharp.Control.FSharpAsync`1 FSharp.Data.Runtime.IO.asyncReadTextAtRuntimeWithDesignTimeRules(System.String,System.String,System.String,System.String, System.String)”。”字符串特征码空字节[]源“OnLineDataAccess”串堆栈跟踪“在OnLineDataAccess.TheMovieDatabase.GetSonyPicturesClassics(个)\ r \ n在Film_Data_Exploration.MvcApplication.Application_Start()中E:\胶片数据探索\胶片数据探索\胶片数据探索\全球.asax.cs:第24" 行的字符串
  • TargetSite {FSharp.Data.Runtime.BaseTypes.IJsonDocument GetSonyPicturesClassics()} {System.Reflection.MethodBase} System.Reflection.RuntimeMethodInfo
  • 静态成员
  • 非公共成员

我可以把它切换到FSharp,数据的早期版本中消失,但后来我遇到了其他问题(具体而言,HtmlDocumnent.Elements工作不正常)。所以我想,也许如果我从Visual Studio 15切换到Visual Studio 17,这可能会解决问题,但事实并非如此。

任何人有什么想法?

f#-data
1个回答
1
投票

我得到了同样的错误,用相同的堆栈跟踪,试图在LINQPad使用FSharp.Data。我通过安装的NuGet包FSharp.Core版本4.6.0.0,而不是4.4.0.0的缺省LINQPad固定它。这是有道理的,FSharp.Data的后续版本将会对在FSharp.Core的较新版本的东西的依赖。我不知道在我的LINQPad安装是从得到这样一个古老的版本。

guidance which recommends always explicitly referencing的包,你需要FSharp.Core的版本:

总是通过NuGet包引用FSharp.Core

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

为F#库一些模板使用在.NET SDK中选择一个的隐式FSharp.Core包参考,例如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
© www.soinside.com 2019 - 2024. All rights reserved.