【问题标题】:Getting Missing Method error in FSharp.Data在 FSharp.Data 中出现缺失方法错误
【发布时间】:2018-06-25 14:23:32
【问题描述】:

我正在尝试在 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 类名空字符串
  • 数据 {System.Collections.ListDictionaryInternal} System.Collections.IDictionary {System.Collections.ListDictionaryInternal} HResult -2146233069 int HelpLink 空字符串
  • InnerException null System.Exception 成员名空字符串 消息“找不到方法:'Microsoft.FSharp.Control.FSharpAsync`1 FSharp.Data.Runtime.IO.asyncReadTextAtRuntimeWithDesignTimeRules(System.String, System.String, System.String, System.String, System.String)'。”细绳 签名空字节[] 源“OnLineDataAccess”字符串 StackTrace " 在 OnLineDataAccess.TheMovieDatabase.GetSonyPicturesClassics()\r\n 在 Film_Data_Exploration.MvcApplication.Application_Start() 在 E:\Film Data Exploration\Film Data Exploration\Film Data Exploration\Global.asax.cs:line 24" 字符串李>
  • TargetSite {FSharp.Data.Runtime.BaseTypes.IJsonDocument GetSonyPicturesClassics()} System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}
  • 静态成员
  • 非公共成员

我可以通过切换到早期版本的 FSharp,Data 来消除它,但后来我遇到了其他问题(具体来说,HtmlDocumnent.Elements 无法正常工作)。所以我想如果我从 Visual Studio 15 切换到 Visual Studio 17,可能会解决问题,但它没有。

有人有什么想法吗?

【问题讨论】:

    标签: f#-data


    【解决方案1】:

    尝试在 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 referencing你需要的FSharp.Core版本的包:

    始终通过 NuGet 包引用 FSharp.Core

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

    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 中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-15
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多