在 F# 中使用字符串路径要求 dll
Require dll using string path in F#
有没有办法在 F# 中执行此操作:
let fakeToolsPath = "D:\tools\FAKE\tools\FakeLib.dll"
#r fakeToolsPath
根据构建代码的构建代理,伪造工具位于不同的路径上,因此我需要能够从环境变量或某些配置文件动态设置它。
三个想法,按照黑客攻击的顺序排列 - 您将判断哪一个在您的场景中最有意义:
- 在.fsx脚本中,可以使用
__SOURCE_DIRECTORY__
获取脚本所在的目录。如果您的 dll 始终位于与脚本相关的同一目录中,您可以将其用作 "hook" 来访问它。
fsi.exe
的命令行 --reference
参数应该可以满足您的需求。如果您使用的是 fake.exe
,您可以使用 --fsiargs
来传递它(查看 link 了解详情)。
- 如果其他一切都失败了,请在 CI 作业配置中创建一个 symlink 作为单独的构建步骤,并在脚本中硬编码路径。
有没有办法在 F# 中执行此操作:
let fakeToolsPath = "D:\tools\FAKE\tools\FakeLib.dll"
#r fakeToolsPath
根据构建代码的构建代理,伪造工具位于不同的路径上,因此我需要能够从环境变量或某些配置文件动态设置它。
三个想法,按照黑客攻击的顺序排列 - 您将判断哪一个在您的场景中最有意义:
- 在.fsx脚本中,可以使用
__SOURCE_DIRECTORY__
获取脚本所在的目录。如果您的 dll 始终位于与脚本相关的同一目录中,您可以将其用作 "hook" 来访问它。 fsi.exe
的命令行--reference
参数应该可以满足您的需求。如果您使用的是fake.exe
,您可以使用--fsiargs
来传递它(查看 link 了解详情)。- 如果其他一切都失败了,请在 CI 作业配置中创建一个 symlink 作为单独的构建步骤,并在脚本中硬编码路径。