相当于Ant属性文件的FAKE?

时间:2015-11-24 19:07:47

标签: f# f#-fake

我正在将项目从使用NAnt转换为FAKE。该项目使用* .properties文件来通知main build.xml脚本,以获取build.xml脚本文件需要执行的一些可执行文件的位置。

由于这些可执行文件的性质,它们不易被发现,因为安装不会将它们安装在PATH中,并且用户可以自定义它们的安装位置。因此* .properties文件供用户设置它们所在的位置。

FAKE等同于什么?我想过在每次调用FAKE构建脚本时都会传递构建参数,但这并不理想,因为它要求他们每次想要运行构建脚本时都要记住构建参数。并且构建参数是一个长字符串,它是可执行文件的路径,每次输入都很麻烦。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

据我所知,FAKE没有任何内置的配置系统,但你可以使用任何F#库来处理XML来读取配置文件。一个不错的选择是使用F# Data中的XML类型提供程序。

您需要确保在运行FAKE之前恢复FSharp.Data包(与您下载FAKE的方式相同)。然后你可以写config.xml看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <temp-folder>C:\temp</temp-folder>
  <executable>foo.exe</executable>
</configuration>

如果您随后添加对F#Data的引用并打开FSharp.Data命名空间:

#r "System.Xml.Linq.dll"
#r "packages/FSharp.Data/bin/FSharp.Data.dll"
open FSharp.Data

然后,您可以使用XML提供程序。这实际上可以选择XML元素的名称并使它们作为属性可访问,因此您可以非常好地访问配置:

type Config = XmlProvider<"config.xml"> // Assuming this is in the same folder
let config = Config.GetSample()

config.Executable
config.TempFolder

答案 1 :(得分:0)

将这些自定义路径的值放在.fsx文件中 在主构建脚本中包含此.fsx文件