当我在代码中打开假生成脚本时,如下所示:
> dotnet new -i fake-template
> dotnet new fake
> dotnet tool update fake-cli
> code build.fsx我在编辑器中看到此错误消息,没有定义任何假名称空间、模块或类型:
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。
发布于 2021-03-17 03:13:13
这里是Ionide代码的维护者。从现在开始,错误就会发生。在其版本的FSharp.Compiler.Services中,FAKE落后,没有对该组件的更新,我们与FAKE的集成已经萎缩到编辑器在脚本中显示错误的程度。
有几种解决办法:
等。
发布于 2022-04-05 18:05:17
我刚刚通过使用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"发布于 2022-08-08 20:34:18
在切斯特的回答之后,我选择在构建控制台项目中使用假库。这有时被称为build.fsproj 。实际上,将脚本转换为这种模式非常简单,而且我发现调试和工具支持要好得多。不幸的是,在编写本报告时,还没有这种模式的正式文档。
从本质上说,你需要:
[<EntryPoint>]dotnet run调用您的项目。可能来自build.cmd或build.sh文件我发现最好的例子是:
/build/目录最后,我包括了来自SAFE的helper.fs文件,因为它使转换变得非常容易。基本上,脚本的结尾是:
//
// Existing FAKE script open library calls go here
//
open Helpers
initializeContext()
//
// Existing FAKE script body goes here
//
[<EntryPoint>]
let main args = runOrDefault argsMiniScaffold有很好的build.cmd和build.sh脚本。这是build.cmd
echo Restoring dotnet tools...
dotnet tool restore
dotnet run --project ./build/build.fsproj -- -t %*如果您有一个使用环境变量的现有脚本,那么-- -t %*部分是超级的。
我第一次看到了这条推特中提到的方法。
https://stackoverflow.com/questions/66665009
复制相似问题