我在Windows上的Visual Studio 2017中创建了.Net core 2.1 F#控制台应用程序。我会在F#Interactive窗口中尝试该代码。但是,右键单击Dependencies
将不会显示将引用发送到F#Interactive窗口的命令。展开NuGet树可以找到DLL文件名,但是它们没有完整的路径,因此我无法手动运行#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
答案 0 :(得分:2)
由于F#Interactive不支持.net核心,您目前无法执行此操作。但是,由于API表面几乎与.net 4.7相同,并且您可以直接获取必需的包来获取必要的包,只需直接获取所需的任何dll并使用#r
:
#if INTERACTIVE
#r "System.IO.Compression.FileSystem.dll"
#endif
例如,这将使您通过从.net提取压缩dll来使用一些zip存档扩展名方法。
如果您决定创建与框架无关的文件,则.net核心dll将打包在publish
文件夹中。无论fsharp交互式需要什么完整的框架dll,都可以直接将其下拉或移至另一个项目。
顺便说一句,如果您想知道.net核心nuget包在哪里被下拉,它位于:
C:\Users\$USERNAME\.nuget\packages
。如果支持,您应该找到net45和netstandard2版本。