我正在写一个允许用户向其提供配置文件的类型提供程序。我使用TP的内部配置对象来识别ResolutionFolder
,我使用它来获取配置文件的完全修补路径。大。如何在通过#load引用程序集时获取F#Type Provider的正确解析文件夹?
但是,在使用脚本时,我使用Paket的自动生成的加载脚本来加载我的依赖项。文件路径如下所示: -
.paket
|--.load
| |-- net452
| |-- main.group.fsx
|--src
|-- myscript.fsx
|-- config.json
myscript.fsx
包含我的脚本代码。 config.json
包含我将在脚本中创建的类型提供程序实例的配置。
Inside myscript.fsx
我打电话#load "..\.paket\.load\net452\main.group.fsx"
加载所有依赖项(包括我的TP本身),它工作正常。
无论其
当我再尝试初始化类型提供方,还倒在脚本: -
type MyTPInstance = MyTp<myConfig = "config.json">
我得到一个错误,我的TP捕获和显示: -
The type provider reported an error: Unable to locate config file
"C:\Users\Isaac\Source\Repos\myRepo\.paket\load\net452\config.json"
换句话说 - 看起来是因为我从一个生活在另一个文件夹中的脚本引用了我的TP组件,这是 FSI用作解析文件夹的文件夹 - 而不是正在运行的脚本的文件夹。我可以证明这是问题所在,因为如果我直接将main.group.fsx
的内容复制到myscript.fsx
并(固定路径到我的包的路径),它一切正常。
我该如何解决这个问题?其他人如何解决这个问题?
哈利路亚。这有效 - 谢谢。顺便说一句 - 哪里的关于'const'关键字的文档是F#4.1?没有见过它在任何地方记录 –
我想''const'关键字神奇地出现在F#中,随着VS 2015 ... –
甚至没有为我编译。文档仍然显示它是未来使用的保留关键词。 –