gpt4 book ai didi

f# - 加载不在当前目录中的 F# 模块

转载 作者:行者123 更新时间:2023-12-04 13:03:11 26 4
gpt4 key购买 nike

我正在使用 Visual Studio 2017 编写一个简单的 F# 控制台应用程序 .NET Core 2.0 .我想知道是否有可能 open当前目录中不存在的模块。

例如 :
/root/foo.fs
/root/SubDirectory/bar.fs

怎么可以bar.fs打开 Foo模块或反之亦然?

我已经尝试过:

open Foo
open "../Foo"
open "C:/AbsolutePath/Foo"

对于最后两个,VS 提示:

FS0010 : Unexpected string literal in open declaration. Expected identifier, 'global' or other token.



似乎没有关于此的文档。

任何帮助,将不胜感激。

最佳答案

实际上,我相信您只能在 VS2017 中的预览版中添加或重新排序文件(因此在 15.5.6 上还没有)。但是 TheQuickBrownFox 是正确的,包含您模块的文件必须在 fsproj 中文件,顺序很重要。

对于 VSCode,您可以使用 Ionide 中的命令(或项目资源管理器):Ctrl+Shift+P:F#: Add Current File to Project还有 F#: Move File Up/Down (在 F# 项目资源管理器上也有一个右键单击菜单。

在 Visual Studio 2017 中,您可以右键单击项目并选择 Edit .fsproj . VS 会在保存时自动重新加载文件,因此无需像在 VS2015 中那样卸载项目。它看起来像这样:

enter image description here

你可以看到 MyModule.fs位于项目的根目录中,并且带有 MyModule.fs 的行需要位于引用它的任何其他文件之上。您可以使用 Alt+向上/向下箭头来移动线条。

enter image description here

然后你可以打开这个模块并使用它。例如 Add在这个模块中定义。

enter image description here

我还添加了 #load指令,这仅当您想在 FSI 中测试它时,编译器将忽略它。

关于f# - 加载不在当前目录中的 F# 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48830729/

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