首页 > 解决方案 > 将 ASP.Net Core Angular 模板从版本 8 更新到 9

问题描述

我读的书从一开始就有第 9 版(ASP.NET Core 3 和 Angular 9 - 第三版),并且还使用了 angular 模板。我安装了 vs 2019 的最新 Visual Studio 更新。

Angular 项目的模板版本为 8。我读的书是版本 9。所以我尝试更新我的 Angular 版本。 ng update给我

@angular/cli 8.3.14 -> 9.0.3 ng update @angular/cli

@angular/core 8.2.12 -> 9.0.3 ng update @angular/core

@nguniversal/aspnetcore-engine 8.1.1 -> 8.2.6 ng update @nguniversal/aspnetcore-engine

我更新了 cli 和核心。但是当我尝试更新第三个包时,我得到:

C:\Users\user\Test\ClientApp>ng update @nguniversal/aspnetcore-engine
Using package manager: 'npm'
Collecting installed dependencies...
Found 39 dependencies.
Package '@nguniversal/aspnetcore-engine' is not a dependency.

无论如何我都尝试运行该应用程序,但我得到了 HTML

Cannot GET /

或带有以下内容的异常页面:

System.TimeoutException: The Angular CLI process did not start listening for requests within the timeout period of 0 seconds. Check the log output for error information.
   at Microsoft.AspNetCore.SpaServices.Extensions.Util.TaskTimeoutExtensions.WithTimeout[T](Task`1 task, TimeSpan timeoutDelay, String message)
   at Microsoft.AspNetCore.SpaServices.Extensions.Proxy.SpaProxy.PerformProxyRequest(HttpContext context, HttpClient httpClient, Task`1 baseUriTask, CancellationToken applicationStoppingToken, Boolean proxy404s)
   at Microsoft.AspNetCore.Builder.SpaProxyingExtensions.<>c__DisplayClass2_0.<<UseProxyToSpaDevelopmentServer>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

标签: c#angularasp.net-core

解决方案


将 Angular 从 v8 升级到 v9 时,“ng update”会在 main.ts 中添加这一行

export { renderModule, renderModuleFactory } from '@angular/platform-server';

删除它,上面的错误就消失了,检查这个链接


推荐阅读