在F#指令中使用环境变量

时间:2017-11-05 21:37:27

标签: f#

在FSI中,是否可以运行类似

的内容
#I @"%APPDATA%/npm/node_modules/blabla/bin/"

而不是

#I @"C:/Users/username/AppData/Roaming/npm/node_modules/blabla/bin/"

是否有其他选项使其对用户名不敏感?

1 个答案:

答案 0 :(得分:1)

您不太可能在#I FSI指令中使用环境变量。

但是,您可以使用类似__SOURCE_DIRECTORY__ built-in identifier中描述的this SO answer的技巧,使您的软件包安装与用户名无关:

  • 使用单行代码

    创建文件anchorfsi.fsx
    #I __SOURCE_DIRECTORY__
    

    并将其放入目录%APPDATA%指向

  • 添加到命令行,启动您的FSI术语

    --load:%APPDATA%\anchorfsi.fsx
    

现在,您可以在#r指令中使用相对路径。

仅举例说明我将与我的用户个人资料相关联的目录放入包含testlib的文件夹FSharp.Data.dll。下面的片段显示了如何使用上述技术从FSI引用它:

enter image description here