gpt4 book ai didi

F# 类型提供程序在引用项目中查找示例文件,而不是引用项目

转载 作者:行者123 更新时间:2023-12-01 13:27:40 25 4
gpt4 key购买 nike

我有一个我使用的图书馆 FSharp.DataJsonProvider从 JSON 文件构造类型。但是,当我在控制台应用程序中引用这个项目并尝试访问生成的类型时,它不会编译,而是在控制台应用程序的目录中查找示例文件,产生类似的错误

Cannot read sample JSON from 'sample.json': Could not find file 'C:\Some\Where\TheSolution\ConsoleApp\sample.json

我真的必须将示例文件复制到每个引用项目,还是必须将其添加为 DLL 才能使其正常工作,或者我做错了什么?

最佳答案

当您在库中使用 F# 数据类型提供程序并引用该库时,编译器将尝试访问示例 - 这是因为这些类型在每次使用时都会被删除并重新创建。 (它们也是惰性生成的,因此它们是在使用时即时生成的,因此这是唯一的选择。)

如果你可以用你的库复制文件,那可能是最好的选择,但我们试图解决这个问题 - 你可以将示例嵌入为资源并告诉类型提供者首先查找资源。见 Using JSON provider in a library在 F# 数据文档中:

type WB = JsonProvider<"../data/WorldBank.json", 
EmbeddedResource="MyLib, worldbank.json">

例如,这用于 F# Data Toolbox图书馆。唉,让它正常工作有点繁琐。

关于F# 类型提供程序在引用项目中查找示例文件,而不是引用项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47632912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com