问题描述
我通常可以在Visual Studio Code的.fsx文件中将AKKA actor与F#一起使用,但是当我在.fs文件中使用AKKA actor时,它将报告错误:
即使我在项目中下载了dotnet add Project package Akka
和dotnet add Project package Akka.FSharp --version 1.4.10
的AKKA软件包,并将它们包含在.fs文件中,也是如此:
module P
open System
open Akka
open Akka.Actor
open Akka.FSharp
解决方法
您肯定可以从fs
文件中引用fsx
个文件,因为它是快速原型制作的相当普遍的工作流程。如有必要,可以使用#if INTERACTIVE
和#endif
编译指示来分隔已编译和fsx代码部分。
这进入Library.fs
,项目引用并下载了FileHelpers
nuget包:
module SO201004.Library
open FileHelpers
let fname = @"C:\temp\navdb.csv"
[<CLIMutable; DelimitedRecord(",")>]
type NavDB = {
Path: string
Frequency: string
LastAccess: string
}
let fHelper = FileHelperEngine<NavDB>()
let navDB = fHelper.ReadFile(fname)
现在,在Script1.fsx
文件中,您可以#load
上述模块,以及#r
任何其他库:
#r @"C:\Users\USERNAME\.nuget\packages\filehelpers\3.4.1\lib\netstandard2.0\FileHelpers.dll"
//#r "nuget: FileHelpers"
#load "Library.fs"
open SO201004
Library.navDB
我只是打开SO201004
名称空间来访问Library
模块。如果我调用navDB
,则会得到解析后的CSV(解析器在Library
文件/模块中定义)。
{ Path = ""C:\Users\USERNAME\OneDrive\Documents\Source\WebDev\FruitsProject"" Frequency = ""364"" LastAccess = ""132160581961691649"" }; { Path = ""C:\Users\USERNAME\OneDrive\Documents\Source\WebDev\todolist-v2-starting-files"" Frequency = ""12"" LastAccess = ""132161111431384871"" }|]
在预览版中,您应该可以使用我注释掉的#r nuget:
指令。