【问题标题】:How to upgrade WASM app to NET5 framework? [closed]如何将 WASM 应用升级到 NET5 框架? [关闭]
【发布时间】:2020-11-19 12:27:47
【问题描述】:
我决定将我的一个项目升级到最新的 .NET 版本 (.NET 5)。
它由一个针对 netcoreapp3.1 的 asp.net 核心应用程序 (web api) 和一个针对 netstandard2.1 的 blazor WASM 项目组成。
在两个项目中将 targetframework 更新为 net5.0 后,api 项目工作正常,但 WASM 项目没有。
我应该遵循哪些升级步骤?
附言我有最新的视觉工作室(16.8.1 版)和 dotnet(5.0.100 版)
Blazor 应用中的错误消息:
HTTP 错误 500.33 - ANCM 请求处理程序加载失败
此问题的常见解决方案:
确保您的应用程序引用了 Microsoft.AspNetCore.App。
ANCM 检测到的特定错误:
找不到为进程内应用程序引用的程序集“aspnetcorev2_inprocess.dll”。请确认您的应用程序中引用了 Microsoft.AspNetCore.Server.IIS 或 Microsoft.AspNetCore.App。
【问题讨论】:
标签:
.net-core
blazor-webassembly
.net-5
【解决方案1】:
要升级,您还需要更改一些代码,这是您需要在 WASM 项目上执行的操作:
在 WASM 项目的.csproj 文件上:
- 将
<Project Sdk="Microsoft.NET.Sdk.Web"> 更改为<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
- 将
<TargetFramework>netstandard2.1</TargetFramework> 更改为<TargetFramework>net5.0</TargetFramework>
- 删除
<RazorLangVersion>3.0</RazorLangVersion>
- 删除对
Microsoft.AspNetCore.Components.WebAssembly.Build的包引用
- 将所有其他软件包更新到最新版本
5.0.0
在wwwroot/index.html:
- 将
<app>Loading...</app> 更改为<div id="app">Loading...</div>
在Program.Main:
- 将
builder.RootComponents.Add<App>("app") 更改为builder.RootComponents.Add<App>("#app")
- 将
HttpClient 的注册更改为Scoped,如下所示:
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
在这些更改之后,错误应该消失了。
阅读更多扩展场景here