Как правильно сделать метод расширения IEndpointRouteBuilder? - PullRequest
2 голосов
/ 05 февраля 2020

Я хочу создать метод расширения IEndpointRouteBuilder (NetCore 3.1), а затем создать пакет nuguet для его повторного использования.

Я сделал проект библиотеки, но я изменил файл .csproj с <Project Sdk="Microsoft.NET.Sdk"> на <Project Sdk="Microsoft.NET.Sdk.Web">, чтобы иметь доступ к IEndpointRouteBuilder (с <Project Sdk="Microsoft.NET.Sdk"> я получил ссылку на сообщение). Я не знаю, правильно ли это; существует нюгет pkg? (NetCore 3.1).

После изменения Sdk в .csproj я добавил <GeneratePackageOnBuild>true</GeneratePackageOnBuild>, но после сборки пакет nuget не был сгенерирован.

У меня вопрос, как мне сделать ( config) проект для создания пакета nuget с методом расширения IEndpointRouteBuilder.

Здесь мой .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>

1 Ответ

3 голосов
/ 05 февраля 2020

Файл 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, если вам нужен пакет.

Пакет Microsoft.AspNetCore.Routing , содержащий IEndpointRouteBuilder, был удален как часть версии 3.0. Таким образом, для ссылки на функцию вам нужно добавить ссылку на структуру Microsoft.AspNetCore.App

...