我正在将项目从使用NAnt转换为FAKE。该项目使用* .properties文件来通知main build.xml脚本,以获取build.xml脚本文件需要执行的一些可执行文件的位置。
由于这些可执行文件的性质,它们不易被发现,因为安装不会将它们安装在PATH中,并且用户可以自定义它们的安装位置。因此* .properties文件供用户设置它们所在的位置。
FAKE等同于什么?我想过在每次调用FAKE构建脚本时都会传递构建参数,但这并不理想,因为它要求他们每次想要运行构建脚本时都要记住构建参数。并且构建参数是一个长字符串,它是可执行文件的路径,每次输入都很麻烦。
感谢您的帮助。
答案 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文件