。Net Core项目从3.1降级到2.2-找不到类型或名称空间名称'IWebHostEnvironment'

问题描述 投票:1回答:2

我不得不降级使用以下脚手架的.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中的自动建议修复选项没有帮助,因为它们都是“ Generate Interface”,与潜在的缺少软件包无关。

我在此类上的using声明如下:

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

编辑

我什至走这条路线的唯一原因是,即使我的App Service设置为使用该版本(LTS),也无法使用.Net Core 3.1部署到Azure。

当前的.NET SDK不支持定位.NET Core 3.1。要么目标.NET Core 2.2或更低版本,或使用的.NET SDK版本支持.NET Core 3.1。

这是CI进程上Azure服务器上的错误。我所看到的唯一信息是Microsoft尚未完全为.Net Core 3.1 Azure CI做好准备,但我发现有些难以置信。为简单起见,我只想降级到2.2,我知道它可以在Azure上很好地工作,并且可以满足我的项目的需求。

我删除了Azure上的App Service,并将其重新创建为Windows下托管的.Net Core 2.2 App Service。我遇到的其他这些问题是试图在自己的计算机上将其降级到2.2。

编辑2

这是我当前的依赖关系,所有这些都显示2.2,包括SDK。

Project Dependencies

c# asp.net-core .net-core asp.net-core-mvc asp.net-core-2.2
2个回答
3
投票

您可以使用IHostingEnvironment代替.net core 2中的IHostingEnvironment。当然,您必须确保已安装.net core 2.2。 sdk。


0
投票

我能够通过安装以下项目模板来解决此问题:

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

这使我可以从头开始创建一个新项目,可以从中复制Startup.csProgram.cs文件,也可以复制已安装的NuGet软件包。

这解决了由于将项目从Core 3.1切换到Core 2.2而导致的所有错误。

[由于使用了3​​.1的某些功能,例如Range,还涉及其他代码更改,但我将这些功能保留为2.2兼容的代码更改,并且所有这些都可以再次使用。

如果有人尝试这样做,则需要将NuGet软件包从3.1降到2.2:

2.2 NuGet Packages

© www.soinside.com 2019 - 2024. All rights reserved.