如何将 WASM 应用程序升级到 NET5 框架?
How to upgrade WASM app to NET5 framework?
我决定将我的一个项目升级到最新的 .NET 版本 (.NET 5)。
它由一个针对 netcoreapp3.1 的 asp.net 核心应用程序(web api)和一个针对 netstandard2.1 的 blazor WASM 项目组成。
在两个项目中将 targetframework 更新为 net5.0 后,api 项目工作正常但 WASM 项目不工作。
升级应该遵循哪些步骤?
p.s。我有最新的 visual studio(版本 16.8.1)和 dotnet(版本 5.0.100)
Blazor 应用程序中的错误消息:
HTTP Error 500.33 - ANCM Request Handler Load Failure
Common solutions to this issue:
Make sure Microsoft.AspNetCore.App is referenced by your application.
Specific error detected by ANCM:
Could not find the assembly 'aspnetcorev2_inprocess.dll' referenced for the in-process application. Please confirm the Microsoft.AspNetCore.Server.IIS or Microsoft.AspNetCore.App is referenced in your application.
要升级,您还需要更改一些代码,这是您需要在 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
我决定将我的一个项目升级到最新的 .NET 版本 (.NET 5)。
它由一个针对 netcoreapp3.1 的 asp.net 核心应用程序(web api)和一个针对 netstandard2.1 的 blazor WASM 项目组成。 在两个项目中将 targetframework 更新为 net5.0 后,api 项目工作正常但 WASM 项目不工作。
升级应该遵循哪些步骤?
p.s。我有最新的 visual studio(版本 16.8.1)和 dotnet(版本 5.0.100)
Blazor 应用程序中的错误消息:
HTTP Error 500.33 - ANCM Request Handler Load Failure
Common solutions to this issue:
Make sure Microsoft.AspNetCore.App is referenced by your application.
Specific error detected by ANCM:
Could not find the assembly 'aspnetcorev2_inprocess.dll' referenced for the in-process application. Please confirm the Microsoft.AspNetCore.Server.IIS or Microsoft.AspNetCore.App is referenced in your application.
要升级,您还需要更改一些代码,这是您需要在 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