c# - 制作 IEndpointRouteBuilder 的扩展方法的正确方法是什么

标签 c# asp.net-core nuget asp.net-core-3.1 .net-core-3.1

我想制作一个IEndpointRouteBuilder(NetCore 3.1)的扩展方法,然后制作一个nuguet包来重用它。

我创建了一个库项目,但我将 .csproj 文件从 <Project Sdk="Microsoft.NET.Sdk"> 更改为至<Project Sdk="Microsoft.NET.Sdk.Web">访问 IEndpointRouteBuilder (使用 <Project Sdk="Microsoft.NET.Sdk"> 我得到了 missig 引用)。我不知道这是否正确;存在 nuget pkg 吗? (NetCore 3.1)。

更改.csproj中的Sdk后,我添加了<GeneratePackageOnBuild>true</GeneratePackageOnBuild> ,但是构建后没有生成 nuget 包。

我的问题是,如何制作(配置)一个项目来生成具有 IEndpointRouteBuilder 扩展方法的 nuget 包。

这是我的.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <OutputType>Library</OutputType>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <Version>1.0.2</Version>
  </PropertyGroup>
</Project>

最佳答案

csproj 文件应该类似于

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <OutputType>Library</OutputType>
    <Version>1.0.2</Version>
  </PropertyGroup>

  <ItemGroup>
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

</Project>

如果您需要软件包,则无需将Project Sdk更改为Microsoft.NET.Sdk.Web

包含 IEndpointRouteBuilder 的包 Microsoft.AspNetCore.Routing 已作为 3.0 版本的一部分被删除。因此,要引用该功能,您需要添加对 Microsoft.AspNetCore.App

的框架引用

关于c# - 制作 IEndpointRouteBuilder 的扩展方法的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60076019/

相关文章:

c# - 获取winform表单的参数(宽度&高度)

c# - 生成 NSwag 客户端作为构建的一部分

visual-studio - 为什么我们需要像 Nuget 这样的包管理器?

c++ - Nuget 上可以使用 C++ 的 protobuf 吗?

c# - 如果不能保证字符串或整数的 getHashCode() 是唯一的,为什么要使用它?

c# - 从属性 getter 或 setter 方法创建委托(delegate)

c# - 如果路径以 '/api' 开头并且存在映射为后备的文件,如何返回 404?

azure - family_name 和 Give_name 未包含在 AzureAD token 声明中

c# - “IServiceCollection”不包含 'AddControllers' 的定义

c# - 如何处理 x86 与 x64 包