在 F# 中使用字符串路径要求 dll

Require dll using string path in F#

有没有办法在 F# 中执行此操作:

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

#r fakeToolsPath

根据构建代码的构建代理,伪造工具位于不同的路径上,因此我需要能够从环境变量或某些配置文件动态设置它。

三个想法,按照黑客攻击的顺序排列 - 您将判断哪一个在您的场景中最有意义:

  1. 在.fsx脚本中,可以使用__SOURCE_DIRECTORY__获取脚本所在的目录。如果您的 dll 始终位于与脚本相关的同一目录中,您可以将其用作 "hook" 来访问它。
  2. fsi.exe 的命令行 --reference 参数应该可以满足您的需求。如果您使用的是 fake.exe,您可以使用 --fsiargs 来传递它(查看 link 了解详情)。
  3. 如果其他一切都失败了,请在 CI 作业配置中创建一个 symlink 作为单独的构建步骤,并在脚本中硬编码路径。