我正在使用.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)' ”。可能无法使用 目标组件。
我该如何摆脱呢?
答案 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
清理了本地工作副本,然后重新加载了解决方案,重新构建了所有内容,错误消失了。