Переход с 2.1 на 3.1. Net Core, чем заменить Microsoft.AspNetCore.App? - PullRequest
0 голосов
/ 14 июля 2020

Я обновляю свой проект с 2.1 до 3.1. Net Core. Я обновил все зависимости, но столкнулся с проблемами в следующих зависимостях. Обновления недоступны, что должно быть лучшим решением.

<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Razor" Version="2.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.9" />
  </ItemGroup>

и еще одна проблема из-за "Microsoft.AspNetCore.App", как показано на изображении ошибка

1 Ответ

1 голос
/ 14 июля 2020

Похоже, что если вы создаете веб-приложение, вам нужно только свойство целевой платформы:

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

Вы можете удалить все ссылки, определенные в вашем <ItemGroup>.

Microsoft. NET .Sdk.Web уже неявно ссылается на Microsoft.AspNetCore.App: https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&tabs=visual-studio#framework -reference

Попытка ответить на вопрос по существу:

In. NET Core 3.1, у вас все еще есть «Microsoft.AspNetCore.App», но вам не нужно явно ссылаться на него, как вы сделал в. NET Core 2.1.

И «Microsoft.AspNetCore.App» уменьшился. NET Core 3.x: несколько пакетов были удалены. Поэтому, если вы видите, что некоторые из ранее импортированных вами пространств имен отсутствуют, вам, вероятно, придется получить их через NuGet.

Кстати,

Ошибка с IHostEnvironment, не содержащим WebRootPath, была связана с недавним рефакторингом, когда старый IHostingEnvironment был разделен на 2 интерфейса: IHostEnvironment и IWebHostEnvironment. WebRootPath определяется в IWebHostEnvironment.

...