我不得不降级使用以下脚手架的.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;`
这些都是有效的(未标记的)引用。
还有很多其他错误。我在这里想念什么?
编辑
我什至走这条路线的唯一原因是,即使我的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。
您可以使用IHostingEnvironment代替.net core 2中的IHostingEnvironment。当然,您必须确保已安装.net core 2.2。 sdk。
我能够通过安装以下项目模板来解决此问题:
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: