我正在编写一个类型提供程序,它允许用户向它提供配置文件。我使用 TP 的内部配置对象来识别ResolutionFolder
,我使用它来获取配置文件的完全限定路径。伟大的。
但是,在使用脚本时,我使用 Paket 自动生成的加载脚本来加载我的依赖项。文件路径如下所示: -
.paket
|--.load
| |-- net452
| |-- main.group.fsx
|--src
|-- myscript.fsx
|-- config.json
myscript.fsx
包含我的脚本代码。config.json
包含我将在脚本中创建的类型提供程序实例的配置。
在里面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
并且(当然是修复我的包的路径),一切正常。
我怎样才能解决这个问题?其他人如何解决这个问题?