.net - 在 F# Interactive 中加载 dotnet 项目文件
问题描述
我有一个 F# dotnet 项目,在我的.fsproj
(例如<PackageReference Include="FSharp.Data" Version="3.0.0-beta4" />
)中有一些依赖项。
现在我想测试我编写的模块中的一些功能,所以我开始fsharpi
尝试使用#load "Program.fs";;
.
但是,然后我得到error FS0039: The type 'CsvProvider' is not defined
.
如何加载具有正确依赖项的模块?
我已经看到了一些解决方法,包括dll
从一些模糊的系统相关路径手动加载所有必需的 s(例如#load a package in F# interactive (FSharpChart.fsx)),但我想必须有更好的方法来做到这一点。
解决方案
为了访问导入库中的代码,您需要告诉 FSI 加载它们。
在最低级别,这可以通过#r
指令来完成:
#r "./packages/FSharp.Data/lib/whatever/FSharp.Data.dll"
这通常足以满足一次性目的。
但是,如果有很多引用,您的 IDE 通常可以为您自动执行此操作。例如,在 Visual Studio 中,您可以右键单击项目并选择“将引用发送到 F# Interactive”或“生成带有引用的脚本文件”(不确定确切的措辞)。如果您安装了 Ionide 扩展,则在 VSCode 中可以使用相同的选项。
此外,还有一个用于直接支持 FSI 中的包的积极提案+原型 - 请参阅https://github.com/fsharp/fslang-suggestions/issues/542。然而,这还没有合并,似乎已经停滞了一点。
推荐阅读
- r - R - 加入数据框并过滤整个组
- html - CSS 样式表类顺序
- javascript - 我正在尝试从 base64 获取图像的高度
- node.js - 在创建用户之前比较 2 个 mongodb 字段(passportjs)
- node.js - 端点冲突
- spring - 创建名为“org.springframework.cloud.netflix.eureka.server.EurekaServerInitializerConfiguration”的bean时出错
- android - Android Studio justificationMode 仅在预览中显示
- python - 如何在python中编写一个函数来查找列表中数字的所有位置?
- python - 查找重复项及其索引
- amazon-web-services - 如何在 AWS 上组织用户存储在 S3 存储桶中的数据?