Require dll using string path in F#

时间:2016-07-11 22:38:33

标签: f# f#-fake

Is there a way to do this in F#:

let fakeToolsPath = "D:\tools\FAKE\tools\FakeLib.dll"

#r fakeToolsPath

the fake tools are on a different path depending on the build agent that builds the code, so I need to be able to set it dynamically, from an environment variable or some config file.

1 个答案:

答案 0 :(得分:6)

三个想法,为了增加黑客的顺序 - 你将成为在你的场景中最有意义的判断:

  1. 在.fsx脚本中,您可以使用__SOURCE_DIRECTORY__来获取脚本所在的目录。如果您的dll始终位于与脚本相同的目录中,则可以将其用作" hook"得到它。
  2. --reference的命令行fsi.exe参数可以做你想要的。如果您正在使用fake.exe,则可以使用--fsiargs将其传入(请查看链接以获取详细信息)。
  3. 如果其他一切都失败了,请在CI作业配置中创建一个symlink作为单独的构建步骤,然后在脚本中对路径进行硬编码。