尽管程序正在运行,但类型提供程序“ ProviderImplementation.JsonProvider”报告了一个错误

时间:2018-11-29 15:01:43

标签: f# .net-core visual-studio-2017 f#-data

我正在使用.net Core和Visual Studio 2017编写服务。我想使用JSON进行配置,所以我定义了这样的类型:

type ServiceConfig = JsonProvider<"exampleConfig.json", EmbeddedResource="MyService, exampleConfig.json", SampleIsList = true>

在我的程序中,我像这样加载它:

let conf = ServiceConfig.Load "config.json"

当我运行它时,它可以正常工作,但是在VS 2017中,我会得到一条红色的波浪线,并且错误日志显示:

  

FS3033类型提供程序'ProviderImplementation.JsonProvider'   在提供的类型的上下文中报告了一个错误   'FSharp.Data.JsonProvider,Sample =“ exampleConfig.json”,SampleIsList =“ True”,EmbeddedResource =“ MyService,exampleConfig.json”',成员'Load'。错误:方法   'FSharp.Data.Runtime.BaseTypes.IJsonDocument   在类型中找不到Create(System.IO.TextReader,System.String)'   ”。可能无法使用   目标组件。

我该如何摆脱呢?

2 个答案:

答案 0 :(得分:0)

我不确定这是问题所在,但可能有助于给出示例文件的绝对路径。解决相对路径是类型提供程序中不断出现问题的根源。您可以执行以下操作:

[<Literal>]
let sample = __SOURCE_DIRECTORY__ + "/exampleConfig.json"
type ServiceConfig = 
    JsonProvider< sample, EmbeddedResource="MyService, e
                  xampleConfig.json", SampleIsList = true >

答案 1 :(得分:0)

我有机会自己找到答案。一定是某些Visual Studio索引变了。我的解决方案中的另一个项目有另一个问题,因此我只是对git进行了“紧急提交”,使用git clean -fdx清理了本地工作副本,然后重新加载了解决方案,重新构建了所有内容,错误消失了。