我刚刚升级到 Visual Studio 2019 版本 16.5.0 Preview 2.0。它似乎破坏了使用 dotnet 命令行工具在 F# 中构建和运行 .NET Core 项目的过程。

以前 dotnet builddotnet run 工作正常。现在任何一个都会产生此错误消息(为了可读性而包装):

C:\Program Files\dotnet\sdk\3.1.200-preview-014883\NuGet.targets(124,5):
  error : '{{FSharpCoreShippedPackageVersion}}' is not a valid version string.

我的项目在我可以看到的任何地方(包括.fsproj文件中)都没有字符串FSharpCoreShippedPackageVersion。我还查看了引用的 NuGet.targets 文件,也找不到 FSharpCoreShippedPackageVersion

使用 dotnet new console --language=F# 也失败,告诉我恢复 NuGet 包,但尝试 dotnet restore 会给出相同的错误消息。

我能做些什么来解决这个问题?

最佳答案

更新 :此问题似乎在当前版本的预览中已修复:
3.1.200-preview-014977
如果更新 Visual Studio 2019 预览版,则不再需要此解决方法。

我找到了一个解决方法:

  • 运行项目根文件夹
  • 中的dotnet new globaljson
  • 编辑 global.json 以使用 .NET Core 3.1.101 而不是 3.1.200-preview-014883

  • 看来是 VS 2019 Version 16.5.0 Preview 2.0 和 .NET Core 3.1.200-preview-014883 的组合导致了这个问题。

    10-08 04:17