修复 build.fsx 中的 "Package manager key paket was not registered"

Fix for "Package manager key paket was not registered" in build.fsx

当我在 Visual Studio 代码中打开一个 Fake 构建脚本时,像这样:

> dotnet new -i fake-template
> dotnet new fake
> dotnet tool update fake-cli
> code build.fsx

我在编辑器中看到此错误消息,并且 none 定义了虚假命名空间、模块或类型:

Package manager key 'paket' was not registered in
c:\Users\wallace.kelly\.vscode\extensions\ionide.ionide-fsharp-5.4.0\bin\
Currently registered: nuget

如何更正此错误?

运行 dotnet fake build 工作正常。错误刚刚出现在编辑器中。

我的设置文件中有 "FSharp.dotNetRoot": "C:\Program Files\dotnet\sdk",。该文件夹包括文件夹 2.1.701 2.2.401 3.1.407 5.0.103 和 5.0.104。

此处为 VS Code 的 Ionide 维护者。从现在开始,这种错误只会发生。 FAKE 的 FSharp.Compiler.Services 版本落后,如果不更新该组件,我们与 FAKE 的集成已经萎缩到编辑器在该脚本中显示错误的程度。

有几个解决方案:

  • 继续使用 FAKE,只处理编辑器问题
  • 停止使用 FAKE 作为脚本运行器,但继续使用构建项目或 'standard' fsx 脚本中的 FAKE 库
  • 使用其他某种构建系统
  • 为 FAKE 贡献更新(并扩展 Ionide 中已弃用的代码)

等等等等

我刚刚通过使用 ifdef.

摆脱了警告
#if FAKE
#r "paket:
nuget Fake.DotNet.Cli
nuget Fake.IO.FileSystem
nuget Fake.Core.Target //"
#endif
#load ".fake/build.fsx/intellisense.fsx"
open Fake.Core
open Fake.DotNet
open Fake.IO
open Fake.IO.FileSystemOperators
open Fake.IO.Globbing.Operators
open Fake.Core.TargetOperators

Target.initEnvironment ()

Target.create "Clean" (fun _ ->
    !! "src/**/bin"
    ++ "src/**/obj"
    |> Shell.cleanDirs 
)

Target.create "Build" (fun _ ->
    !! "src/**/*.*proj"
    |> Seq.iter (DotNet.build id)
)

Target.create "All" ignore

"Clean"
  ==> "Build"
  ==> "All"

Target.runOrDefault "All"