我正在使用面向.NET Core 2.0
的Visual Studio 2017编写一个简单的F#控制台应用程序。我想知道是否可能open
当前目录中没有的模块。
例如:
/root/foo.fs
/root/SubDirectory/bar.fs
bar.fs
如何打开Foo
模块,反之亦然?
我已经尝试过了:
open Foo
open "../Foo"
open "C:/AbsolutePath/Foo"
对于最后两个,VS抱怨:
FS0010:打开声明中的意外字符串文字。预期的标识符,“全局”或其他标记。
似乎没有关于此的文档。
任何帮助都将不胜感激。
答案 0 :(得分:1)
实际上你只能在我相信的预览版中添加或重新排序VS2017中的文件(所以15.5.6还没有)。但是TheQuickBrownFox是正确的,包含模块的文件必须在fsproj
文件中,顺序很重要。
对于VSCode,您可以使用Ionide中的Command(或Project Explorer):Ctrl + Shift + P:F#: Add Current File to Project
以及F#: Move File Up/Down
(F#Project Explorer上也有右键单击)
在Visual Studio 2017中,您可以右键单击项目并选择Edit .fsproj
。 VS将在保存时自动重新加载文件,因此无需像VS2015那样卸载项目。它看起来像这样:
您可以看到MyModule.fs
位于项目的根目录中,而MyModule.fs的行必须高于引用它的任何其他文件。您可以使用Alt +向上/向下箭头移动线条。
然后你可以打开这个模块并使用它。例如,Add
在此模块中定义。
我还添加了#load
指令,只有当你想在FSI中测试它时,编译器才会忽略它。