如何开始创建 Giraffe Web 项目以及如何为其提供服务?

问题描述 投票:0回答:1

在 Mac M1

 上使用 
giraffe-template 时遇到一些问题,因此决定手动设置 Giraffe 项目。开始遵循 Giraffe 自述文件的“手动执行”部分,但立即陷入困境,而且我也看不到任何地方提到如何提供该项目。

郑重声明,
Giraffe 文档很棒

。我是 .NET 新手,所以我正在努力解决的部分是 .NET 项目管理、F# 和 ASP.NET Core 的基础知识 - 期望其中涵盖这些主题是不合理的。

asp.net-core .net-core f# f#-giraffe asp.net-core-cli
1个回答
0
投票

Giraffe 项目插入
ASP.NET Core

管道,或者本身就是一个 ASP.NET Core 应用程序

,所以如果我在
Giraffe 文档

中找不到问题的答案,那么可能是因为它是一个 ASP.NET Core 主题(或 F# / .NET / 等主题)。 如何创建和服务 Giraffe 项目

步骤 0. 到 5. 请遵循

通过命令行工具开始使用 F# (.NET | Microsoft Learn)

文章。

  1. 可选

    创建新解决方案 dotnet new sln -o SampleSolution

  2. 输入解决方案的目录

    cd SampleSolution

  3. 创建一个空的

    ASP.NET Core 项目 dotnet new web -lang "F#" -o src/GiraffeWebExample

    信息 可用的 
    dotnet new

    模板可在下面的链接中找到。 (两者似乎都列出了所有内容,但不确定哪一个是最新的。)

    
    

    [Microsoft Learn][.NET CLI]
      .NET 默认模板
    • dotnet new
      
      
      [Microsoft Learn][.NET CLI]
    • dotnet new <TEMPLATE>
      
      
  4. 可选

    将新项目添加到解决方案 dotnet sln add src/GiraffeWebExample/GiraffeWebExample.fsproj

  5. 进入项目目录

    . cd src/GiraffeWebExample/

  6. 安装依赖项

    dotnet add package Microsoft.AspNetCore.App dotnet add package Giraffe

    注意,在添加长颈鹿时,我收到了下面的警告,因此为了完整起见,将其粘贴到此处:

    /usr/local/share/dotnet/sdk/8.0.202/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.Shared.targets(111,5): warning NETSDK1080: A PackageReference to Microsoft.AspNetCore.App is not necessary when targeting .NET Core 3.0 or higher. If Microsoft.NET.Sdk.Web is used, the shared framework will be referenced automatically. Otherwise, the PackageReference should be replaced with a FrameworkReference. [/Users/toraritte/dev/shed/dotnet/giraffe/ByHand/src/ByHand/ByHand.fsproj]

    
    
  7. 添加“入口点”

    注意 仍然没有弄清楚 .NET 还必须通过哪些其他方式来设置 Web 项目,但是 [
    Microsoft Learn][F# Guide] 控制台应用程序和显式入口点

    文章中介绍了

    EntryPoint
    属性。

    我选择简单地复制“手动执行”部分中的示例代码之一;我更喜欢更实用的方法,所以这是第二种:

    open System open Microsoft.AspNetCore.Builder open Microsoft.AspNetCore.Hosting open Microsoft.Extensions.Hosting open Microsoft.Extensions.DependencyInjection open Giraffe let webApp = choose [ route "/ping" >=> text "pong" route "/" >=> htmlFile "/pages/index.html" ] let configureApp (app : IApplicationBuilder) = // Add Giraffe to the ASP.NET Core pipeline app.UseGiraffe webApp let configureServices (services : IServiceCollection) = // Add Giraffe dependencies services.AddGiraffe() |> ignore [<EntryPoint>] let main _ = Host.CreateDefaultBuilder() .ConfigureWebHostDefaults( fun webHostBuilder -> webHostBuilder .Configure(configureApp) .ConfigureServices(configureServices) |> ignore) .Build() .Run() 0

    运行/服务项目
  8. dotnet watch run

    INFO 从 ASP.NET Core 文档中的
    ASP.NET Core 入门
    文章开始。

© www.soinside.com 2019 - 2024. All rights reserved.