我可以从一个 fsx 文件中 install/reference 包吗?
Can I install/reference packages from within an fsx file?
我正在尝试找到一个简单的解决方案,不需要太多手动操作来引用包。在 .fsx 文件中。
LinqPad 4
让我简单地添加 nuget 包
- 没有智能感知或自动完成
- 下载某些类型的包后删除包(例如templatus)
LinqPad 5 beta
让我添加 nuget 包
- 下载某些类型的包后删除包(例如templatus)
- 经常失败(智能感知和 compilation)
VS2015
不允许您 download/install fsx 文件的包(仅限项目)
VSCode
不允许您 download/install fsx 文件的 nuget 或 paket 包。
所以我最终不得不在 VS2015 中使用 .fsx,同时使用 linqpad 来下载包(对于像 templatus 这样的包,它下载的是 exe 而不是 dll 仍然失败)。然后我可以将它们引用为
#I @"..\LINQPad\NuGet.FW46\FParsec\FParsec.1.0.2\lib\net40-client\" // references AppData\local\ ... since . is %localappdata%\TEMP
- 与 VSCode 中 intellisense/autocompletion 引擎的相对路径不匹配,所以我无法从等式中删除 VS。
- 在该位置已有该软件包的机器之外无法工作
- 最后做了一个 bunch of code,它不能很好地跨越 .fsx 文件,必须根据包参考进行计算
我不想创建项目。我有大量单独的脚本,需要单独维护并供其他人按需使用。
是否有一个 IDE(或 fix/extension 对于其中一个提到的)可以给我智能感知、自动完成和包管理的 F# .fsx 文件轻松地从用户到用户,从机器到机器?
The Ionide plugins for VsCode and Atom 具有您正在寻找的功能
VsCode 说明
使用命令面板安装 Ionide 扩展 ionide-fsharp and ionide-paket
您需要将 F# 安装添加到 PATH
(on windows Rapid Enivornment Editor 是我 PATH
编辑的目标)
对于 F# 4.0 添加 C:\Program Files (x86)\Microsoft SDKs\F#.0\Framework\v4.0
打开将保存您的 .fsx
个文件的工作文件夹
通过命令面板执行 paket 命令将是您使用 nuget 包的主要界面
创建一个新的 .fsx
文件,(我建议使用 Advanced New File 扩展名而不是标准的 VsCode 方法)
第一步是 运行 paket init
这是使用 paket 管理您的包所必需的
如果您单击通知弹出窗口上的 open
按钮,您可以在侧面板中查看 paket 的输出
使用 add nuget package
命令并为包输入 extcore
后,您应该会看到工作树
更新为
然后您需要做的就是在脚本中引用包,您将得到您正在寻找的auto-completion
从 F# 5.0 开始,您现在可以使用 #r "nuget: Package"
(ref):
#r "nuget: Newtonsoft.Json"
// Optionally, specify a version explicitly
// #r "nuget: Newtonsoft.Json,11.0.1"
open Newtonsoft.Json
let o = {| X = 2; Y = "Hello" |}
printfn "%s" (JsonConvert.SerializeObject o)
我正在尝试找到一个简单的解决方案,不需要太多手动操作来引用包。在 .fsx 文件中。
LinqPad 4
让我简单地添加 nuget 包- 没有智能感知或自动完成
- 下载某些类型的包后删除包(例如templatus)
LinqPad 5 beta
让我添加 nuget 包- 下载某些类型的包后删除包(例如templatus)
- 经常失败(智能感知和 compilation)
VS2015
不允许您 download/install fsx 文件的包(仅限项目)VSCode
不允许您 download/install fsx 文件的 nuget 或 paket 包。
所以我最终不得不在 VS2015 中使用 .fsx,同时使用 linqpad 来下载包(对于像 templatus 这样的包,它下载的是 exe 而不是 dll 仍然失败)。然后我可以将它们引用为
#I @"..\LINQPad\NuGet.FW46\FParsec\FParsec.1.0.2\lib\net40-client\" // references AppData\local\ ... since . is %localappdata%\TEMP
- 与 VSCode 中 intellisense/autocompletion 引擎的相对路径不匹配,所以我无法从等式中删除 VS。
- 在该位置已有该软件包的机器之外无法工作
- 最后做了一个 bunch of code,它不能很好地跨越 .fsx 文件,必须根据包参考进行计算
我不想创建项目。我有大量单独的脚本,需要单独维护并供其他人按需使用。
是否有一个 IDE(或 fix/extension 对于其中一个提到的)可以给我智能感知、自动完成和包管理的 F# .fsx 文件轻松地从用户到用户,从机器到机器?
The Ionide plugins for VsCode and Atom 具有您正在寻找的功能
VsCode 说明
使用命令面板安装 Ionide 扩展 ionide-fsharp and ionide-paket
您需要将 F# 安装添加到 PATH
(on windows Rapid Enivornment Editor 是我 PATH
编辑的目标)
对于 F# 4.0 添加 C:\Program Files (x86)\Microsoft SDKs\F#.0\Framework\v4.0
打开将保存您的 .fsx
个文件的工作文件夹
通过命令面板执行 paket 命令将是您使用 nuget 包的主要界面
创建一个新的 .fsx
文件,(我建议使用 Advanced New File 扩展名而不是标准的 VsCode 方法)
第一步是 运行 paket init
这是使用 paket 管理您的包所必需的
如果您单击通知弹出窗口上的 open
按钮,您可以在侧面板中查看 paket 的输出
使用 add nuget package
命令并为包输入 extcore
后,您应该会看到工作树
更新为
然后您需要做的就是在脚本中引用包,您将得到您正在寻找的auto-completion
从 F# 5.0 开始,您现在可以使用 #r "nuget: Package"
(ref):
#r "nuget: Newtonsoft.Json"
// Optionally, specify a version explicitly
// #r "nuget: Newtonsoft.Json,11.0.1"
open Newtonsoft.Json
let o = {| X = 2; Y = "Hello" |}
printfn "%s" (JsonConvert.SerializeObject o)