Даунгрейд. Net Базовый проект с 3.1 до 2.2 - не удалось найти тип или имя пространства имен 'IWebHostEnvironment' - PullRequest
1 голос
/ 09 февраля 2020

Мне пришлось понизить. Net Проект Core 3.1, который был создан с использованием:

dotnet new angular -o my-new-app

Теперь это должно быть для. Net Core 2.2, Angular v8.

Теперь я получаю:

ошибка CS0246: не удалось найти тип или имя пространства имен 'IWebHostEnvironment' (отсутствует директива using или ссылка на сборку?)

Это на линии:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

Параметры автоматического предложения исправлений в Visual Studio 2019 бесполезны, так как все они "Создать Интерфейс ", ничего о потенциальном пропущенном пакете.

Мои объявления об использовании этого класса следующие:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.SpaServices.AngularCli;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;`

Это все действительные (не помеченные) ссылки.

Есть множество других ошибок также. Что мне здесь не хватает?

Errors after Downgrade

Редактировать

Единственная причина, по которой я даже иду по этому маршруту, потому что я не могу выполнить развертывание на Azure с использованием. Net Core 3.1, хотя моя служба приложений настроена на использование этой версии (LTS).

Текущая версия. NET SDK делает не поддерживает таргетинг. NET Core 3.1. Либо target. NET Core 2.2 или ниже, либо используйте версию. NET SDK, которая поддерживает. NET Core 3.1.

Это ошибка на сервере Azure на процесс CI. Единственная информация, которую я видел, - это то, что Microsoft не полностью готова к. Net Core 3.1 Azure CI, но мне в это трудно поверить. Для простоты я просто хочу понизиться до 2.2, который, как я знаю, прекрасно работает с Azure и отвечает потребностям моего проекта.

Я удалил Службу приложений на Azure и заново создал ее как a. Net Служба приложений Core 2.2, размещенная в Windows. Эти другие проблемы у меня возникают при попытке перехода на 2.2 на моей собственной машине.

Изменить 2

Вот мои текущие зависимости, все показывают 2.2, включая SDK.

Project Dependencies

Ответы [ 2 ]

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

вы можете использовать IHostingEnvironment вместо этого в. net core 2. Конечно, вы должны убедиться, что вы установили. net core 2.2. SDK.

0 голосов
/ 09 февраля 2020

Мне удалось решить эту проблему, установив следующий шаблон проекта:

https://marketplace.visualstudio.com/items?itemName=BernardoLloret-Fuentes.aspnetcore22withangular7

Это позволило мне создать новый проект с нуля, который Я мог скопировать файлы Startup.cs и Program.cs, а также дублировать установленные пакеты NuGet.

Это позволило устранить все ошибки, возникшие в результате переключения проекта с Core 3.1 на Core 2.2.

Были другие изменения кода, связанные с использованием некоторых функций 3.1, таких как Range, но я поддержал их до 2.2 совместимых изменений кода, и все снова работает.

Если кто-то еще Чтобы сделать это, вот пакеты NuGet, которые вам понадобятся, чтобы переместить это с 3,1 до 2,2:

2.2 NuGet Packages

...