有没有方法通过在另一个fsx脚本中包含一个fsx脚本来共享一个变量。
例如,脚本buildConsts.fsx包含
let buildDir = "./build/"我想在其他构建脚本中引用这一点。
#load @".\buildConsts.fsx"
let testDlls = !! (buildDir + "*Test*.dll")当我试图运行脚本'buildDir‘变量时,脚本无法编译。
这是一种相当常见的方法,与诸如MSBuild和PSAKE等工具一起使用来模块化脚本。这是对假的正确做法吗?
发布于 2015-02-16 21:17:24
你所做的应该是有效的--你得到的错误信息到底是什么?
我怀疑问题在于F#会自动将文件的内容放入模块中,并且在访问常量之前需要打开该模块。该模块是根据文件名命名的,因此在您的示例中,buildConsts.fsx将生成一个名为BuildConsts的模块。您应该能够按以下方式使用它:
#load @".\buildConsts.fsx"
open BuildConsts
let testDlls = !! (buildDir + "*Test*.dll")您还可以向buildconsts.fsx添加一个显式模块声明,这可能是一个更好的主意,因为它不那么脆弱(当您重命名文件时不会改变):
moule BuildConstants
let buildDir = "./build/"https://stackoverflow.com/questions/28549924
复制相似问题