簡體   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