Обновление с ASP.Net Core 2.2 до 3.0 - PullRequest
       82

Обновление с ASP.Net Core 2.2 до 3.0

5 голосов
/ 30 сентября 2019

У меня есть проект ASP.Net Core со следующей конфигурацией:

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

Я хочу обновить проект до <TargetFramework>netcoreapp3.0</TargetFramework>. При этом я получаю следующее предупреждение:

C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk\targets\
Microsoft.NET.Sdk.DefaultItems.targets(149,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.

Каково именно решение этой проблемы? Я пытаюсь удалить ссылку на Microsoft.AspNetCore.App, но это не работает. Код не ссылается на общую платформу.

Кроме того, что означает «В противном случае PackageReference следует заменить на FrameworkReference». значит?

1 Ответ

3 голосов
/ 30 сентября 2019

Если вы создаете веб-проект, убедитесь, что первая строка файла вашего проекта:

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

В этом случае это автоматически включенная структура: Microsoft.AspNetCore.App. Вам не нужно включать его снова.

https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.0&tabs=visual-studio#framework-reference

Если вы создаете библиотеку бритв, а не веб-проект, убедитесь, что первая строка файла вашего проекта:

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

В этом случае ваша библиотека может зависеть от некоторого класса в ASP.NET Core. Вы должны добавить это:

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

Не забудьте добавить:

    <AddRazorSupportForMvc>true</AddRazorSupportForMvc>

к <PropertyGroup>

Если вы не строите ни бритвенную библиотеку, нивеб-проект, обычно вам не нужно Microsoft.AspNetCore.App. Если вы действительно можете быть уверены в том, что делаете, и действительно нуждаетесь в этом, попробуйте добавить:

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