我在Windows上的Visual Studio2017中创建了一个.Net核心2.1 F#控制台应用程序。我会在F#交互窗口中尝试该代码。但是,右键单击Dependencies
不会显示将引用发送到F#交互窗口的命令。展开DLL树可以找到NuGet文件名,但是它们没有完整的路径,所以我不能手动运行#r ".../full path/Akka.FSharp.dll";;
。
测试.Net核心应用程序的代码。
open System
open Akka.FSharp
let system = System.create "MovieStreamingActorSystem" <| Configuration.load ()
type ProcessorMessage = ProcessJob of int * int * string
let processor (mailbox: Actor<ProcessorMessage>) =
let rec loop () = actor {
let! m = mailbox.Receive ()
printfn "Message %A" m
return! loop ()
}
loop ()
[<EntryPoint>]
let main argv =
let processorRef = spawn system "processor" processor
processorRef <! ProcessJob(1, 2, "3")
0
发布于 2018-09-18 07:23:53
您现在不能这样做,因为F#交互不支持.net核心。但是,由于API surface几乎与.net 4.7相同,您可以直接获取所需的包,只需直接引用它,即可直接获取所需的任何dll并使用#r
#if INTERACTIVE
#r "System.IO.Compression.FileSystem.dll"
#endif
例如,这将允许您通过从.net中拉入压缩dll来对zip存档使用一些扩展方法。
如果您决定创建一个独立于框架的包,.net核心dlls将被打包到publish
文件夹中。无论fsharp交互需要什么完整的框架dll,只需将它们直接拉下或放到另一个项目中即可。
顺便说一下,如果您想知道.net核心nuget包是从哪里下载的,可以在C:\Users\$USERNAME\.nuget\packages
中找到。您应该可以找到支持的net45和netstandard2版本。
更新:在VS2019预览中,F#交互是dotnetcore,并且可以引用dotnetcore标准dll。
https://stackoverflow.com/questions/52357761
复制相似问题