Microsoft.AspNetCore.Mvc зависимость и ASP.NET Core 3 - PullRequest
0 голосов
/ 26 сентября 2019

У нас есть библиотеки, которые зависят от MVC, например, для предоставления пользовательских фильтров действий.Эти библиотеки публикуются как Nuget.

До сих пор мы просто ссылались на Microsoft.AspNetCore.Mvc из библиотеки, чтобы мы могли использовать соответствующие типы (например, ActionFilterAttribute).Но начиная с ASP.NET Core 3, Microsoft прекратила публикацию многих пакетов Nuget как , указанных в руководстве по обновлению , среди них Microsoft.AspNetCore.Mvc.

Как библиотеки, которые зависят от MVC, ссылаются на MVC,начиная с ASP.NET Core 3?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Это описано в разделе многоцелевой таргетинг библиотеки в руководстве по обновлению:

Библиотека должна быть нацелена как на .NET Core 3, так и на .NET Standard 2.0 и использовать условные выражения для любого изPackageReference или FrameworkReference:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>netcoreapp3.0;netstandard2.0</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp3.0'">
    <FrameworkReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.2" />
  </ItemGroup>
</Project>
0 голосов
/ 26 сентября 2019

В соответствии с документацией, указанной в указанной вами ссылке, вы можете выбрать целевой SDK Microsoft.NET.Sdk.Web, который будет неявно ссылаться на общую структуру Microsoft.AspNetCore.App:

Проекты, неявно предназначенные для SDK Microsoft.NET.Sdk.Web.ссылка на Microsoft.AspNetCore.App framework.

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>
    ...
</Project>

Или явно для других SDK:

Проекты, нацеленные на Microsoft.NET.Sdk или Microsoft.NET.Sdk.Razor SDK, должны добавить явныйFrameworkReference до Microsoft.AspNetCore.App.

<Project Sdk="Microsoft.NET.Sdk.Razor">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>

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

Существуют ли определенные библиотеки, от которых вы зависели, которые не включены в общую инфраструктуру Microsoft.AspNetCore.App?

...