2012-03-03 107 views
17

我想给一个或多个.fsx文件加载到F#互动,并有在范围.fsx文件中定义的,这样我就可以直接使用功能,在控制台的所有功能。如何加载外部F#脚本文件并在F#中使用它?

#load指令执行指定的.fsx文件,但后来我不再能在.fsx文件中使用这些功能。任何解决方法?谢谢。

回答

20

我怀疑自己加载脚本是不是可能会导致您的问题模块中。就在第一个脚本中添加

module Script1 

,然后你可以做

#load "Script1.fsx" 
open Script1 

,你的功能将可以访问

+0

然后你就失去独立运行'Script1.fsx'的能力。 – pad 2012-03-03 11:45:34

+0

是啊,这个作品,如果我在Windows我......但是,如果使用单在我的Mac它仍然无法正常工作。 – ximyu 2012-03-04 20:07:18

+0

这样做,这样可以让你用你的* .FS源文件在您的* .fsx呢! – 2017-10-09 17:19:28

26

如果你不声明在FSX文件的模块,它含蓄地创建一个模块相同的名称作为文件名。

因此,您可以使用完全合格的名称或使用前打开相应的模块总是指向另一个FSX文件。例如,在Script2.fsx你可以这样做:

#load "Script1.fsx" 

open Script1 

// Use functions in Script1.fsx 
// ... 
+9

注意,隐模块总是使用标题的情况下,无论文件名 – 2014-05-20 07:40:21

+1

非常的好的意见... – 2016-06-06 15:27:39