F# interactive 无法引用不兼容 .NET 框架的 nuget 包

F# interactive fails to reference nuget package with no .NET framework compatibility

在 Visual Studio 2019 16.8.2 我试图在嵌入式 F# 交互式会话中引用一个 nuget 包

Microsoft (R) F# Interactive version 11.0.0.0 for F# 5.0
Copyright (c) Microsoft Corporation. All Rights Reserved.

#r @"nuget: EventStore.Client.Grpc.ProjectionManagement,20.6.1"

该包不支持 .NET Framework(仅限 .NET Core)所以我收到以下错误

error NU1202: Package EventStore.Client.Grpc.ProjectionManagement 20.6.1 is not compatible with net48 (.NETFramework,Version=v4.8).

我试图通过添加 --noframework(并重置 F# interactive)来更改 fsi 参数,但没有成功。

有谁知道如何让它工作?

目前,Visual Studio 的 F# Interactive window 只能 运行 FSI 的 .NET Framework 版本。为了在 FSI 中使用非框架兼容包,您需要使用 FSI 的命令行版本或直接引用 nuget 包的 netstandard 版本。

命令行版本:

PS> dotnet fsi

Microsoft (R) F# Interactive version 11.0.0.0 for F# 5.0
Copyright (c) Microsoft Corporation. All Rights Reserved.

For help type #help;;

> #r @"nuget: EventStore.Client.Grpc.ProjectionManagement,20.6.1";;

Visual Studio 集成 FSI 版本:

Microsoft (R) F# Interactive version 11.0.0.0 for F# 5.0
Copyright (c) Microsoft Corporation. All Rights Reserved.

For help type #help;;

> #r @"<homedir>\.nuget\packages\eventstore.client.grpc.projectionmanagement.6.1\lib\netstandard2.1\EventStore.Client.ProjectionManagement.dll";;