FAKE 等同于 Ant 属性文件?

FAKE equivalent to Ant properties files?

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

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

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

感谢您的帮助。

据我所知,FAKE 没有任何内置配置系统,但您可以使用任何 F# 库与 XML 一起读取配置文件。一个不错的选择是使用 F# Data.

中的 XML 类型提供程序

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

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

如果您随后添加对 F# 数据的引用并打开 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

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