繁体   English   中英

将 .Net Core 项目从 3.1 降级到 2.2 - 找不到类型或命名空间名称“IWebHostEnvironment”

[英]Downgrade .Net Core project from 3.1 to 2.2 - The type or namespace name 'IWebHostEnvironment' could not be found

我不得不降级使用以下方法搭建的 .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 声明如下:

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;`

这些都是有效的(未标记的)引用。

还有许多其他错误。 我在这里缺少什么?

降级后的错误

编辑

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

当前的 .NET SDK 不支持面向 .NET Core 3.1。 以 .NET Core 2.2 或更低版本为目标,或使用支持 .NET Core 3.1 的 .NET SDK 版本。

这是 Azure 服务器上 CI 进程的错误。 我所看到的唯一信息是 Microsoft 还没有为 .Net Core 3.1 Azure CI 做好充分准备,但我觉得这有点难以置信。 为简单起见,我只想降级到 2.2,我知道它适用于 Azure,并且满足我的项目需求。

我删除了 Azure 上的应用服务,并将其重新创建为托管在 Windows 下的 .Net Core 2.2 应用服务。 我遇到的这些其他问题是尝试在我自己的机器上降级到 2.2。

编辑 2

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

项目依赖

您可以使用 IHostingEnvironment 而不是 .net core 2。当然,您必须确保已安装 .net core 2.2。 软件开发工具包。

通过安装以下项目模板,我能够解决这个问题:

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

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

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

由于使用了一些 3.1 功能(例如Range还涉及其他代码更改,但我将这些更改支持到 2.2 兼容的代码更改,并且一切都恢复正常了。

如果其他人正在尝试此操作,这里是您需要将其从 3.1 移至 2.2 的 NuGet 包:

2.2 NuGet 包

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM