我很难理解我的 blazor 应用程序的问题所在。我有一个客户端 blazor,正在从 .net 3.1 更新到 .net 6。我已阅读有关从 3.1 迁移到 6 的说明,但是当我尝试调试它时,我的应用程序永远不会加载。它抛出:
我在其他帖子中读到过有关 blazor.web assembly.js 未正确加载的信息,但我不确定我做错了什么。我已经检查了参考文献是否有任何错误。 Api 参考在 .NET 6 上正常运行,共享库使用 .net 标准 2.0 这是一些代码,以防您需要。
感谢您的宝贵时间。
索引.html:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="6.0.5" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="6.0.5" PrivateAssets="all" />
<PackageReference Include="Microsoft.Extensions.Http" Version="6.0.0" />
<PackageReference Include="System.Net.Http.Json" Version="6.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SkillMatrix.Api\SkillMatrix.Api.csproj" />
<ProjectReference Include="..\SkillMatrix.Shared\SkillMatrix.Shared.csproj" />
</ItemGroup>
</Project>
索引.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>SkillMatrix.Client</title>
<base href="/" />
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="css/app.css" rel="stylesheet" />
</head>
<body>
<app>Loading...</app>
<div id="blazor-error-ui">
An unhandled error has occurred.
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>
<script src="_framework/blazor.webassembly.js"></script>
</body>
</html>
想出了解决办法。我必须将 csproj 更改为
<Project Sdk="Microsoft.NET.Sdk.Web">
到
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
基于这个答案
还要确保项目组上的 Microsoft.AspNetCore.Components.WebAssembly 引用至少设置为版本 6.0.0
复制此内容或替换到 wwwroot index.html 到头标签
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="css/app.css" rel="stylesheet" />
<link rel="icon" type="image/png" href="favicon.png" />
<link href="BlazorApp1.Client.styles.css" rel="stylesheet" />
<link href="_content/Syncfusion.Blazor/styles/bootstrap5.css" rel="stylesheet" />
<script src="_content/Syncfusion.Blazor/scripts/syncfusion-blazor.min.js" type="text/javascript"></script>
仅更换
<link href="BlazorServer.styles.css" rel="stylesheet" />
<link href="AppName.styles.css" rel="stylesheet" />
解决了问题。
编辑:
抱歉,我对
BlazorServer
感到有些困惑,因为我认为它与 Blazor Server
模板相关,但它与我使用该名称的 Blazor 项目的名称相关。我正在将另一个 Blazor 项目从 netcore3.1 迁移到 net6.0,我在这篇文章中遇到了这个问题,并替换了我上面写的内容,它解决了这个问题。所以,任何遇到这个问题的人都需要这样做<link href="AppName.styles.css" rel="stylesheet" />
。