能否在F# fsx脚本中使用ASP.NET Core?代码运行失败求助
解决F#脚本中WebApplication.CreateBuilder无法运行的问题
- 移除不必要的包引用:
Microsoft.NETCore.App和Microsoft.NETCore.App.Ref属于.NET SDK自带的框架包,无需通过#r "nuget:"手动引用,手动引用反而可能引发版本冲突。 - 明确指定AspNetCore包版本(推荐):根据你当前使用的.NET SDK版本,指定匹配的
Microsoft.AspNetCore.App版本,避免兼容问题,例如#r "nuget: Microsoft.AspNetCore.App, 7.0.14"。 - 修正
args参数问题:F#脚本默认不存在args变量,需用fsi.CommandLineArgs替代(获取脚本运行时的命令行参数),或者直接传入空数组(无参数需求时)。
修改后的可运行示例代码:
#r "nuget: Microsoft.AspNetCore.App, 7.0.14" open Microsoft.AspNetCore.Builder // 替换args为fsi.CommandLineArgs,或直接传空数组 let builder = WebApplication.CreateBuilder(fsi.CommandLineArgs) // 补充基础配置与运行逻辑 let app = builder.Build() app.MapGet("/", fun context -> context.Response.WriteAsync("Hello from F# Script!")) |> ignore app.Run()
同时确保本地安装了与引用包版本匹配的.NET SDK,可通过dotnet --version命令查看当前SDK版本。
内容的提问来源于stack exchange,提问作者citykid
相关产品推荐
相关产品推荐

