Blazor WASM 引用 Razor 类库时出错

问题描述 投票:0回答:4

我们有一个项目,其中包括 Razor 类库和 WASM 项目。两者都是.NET 5.0。

我们使用 WASM 项目测试和演示 RCL,该项目定期发布并且运行良好。

我们不久前创建了 RCL 的 nuget 包,并在 Blazor 服务器端项目中成功使用了它。

现在我尝试在新的 WASM 项目(也是 .NET 5.0)中引用 RCL,但我奇怪地收到此错误:

  <Target Name="_FailIfReferencingAspNetCoreApp" BeforeTargets="ResolveRuntimePackAssets">
    <Error
      Code="BLAZORSDK1001"
      Text="The project references the ASP.NET Core shared framework, which is not supported by Blazor WebAssembly apps. Remove the framework reference if directly referenced, or the package reference that adds the framework reference."
      Condition="'@(FrameworkReference->WithMetadataValue('Identity', 'Microsoft.AspNetCore.App')->Count())' != '0'" />
  </Target>

我有什么遗漏的吗?这是 RCL 的 .csproj,我认为它是相关的:

<Project Sdk="Microsoft.NET.Sdk.Razor">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <PackageId>BlazorUI5</PackageId>
    <Version>1.0.39</Version>
    <Authors>CEO Dev Team</Authors>
    <Company>CEO Consultoría</Company>
    <PackageDescription>Blazor UI5 component package</PackageDescription>
    <RepositoryUrl>https://*******</RepositoryUrl>
    <AssemblyVersion>1.0.39.0</AssemblyVersion>
    <FileVersion>1.0.39.0</FileVersion>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="Helper\**" />
    <Content Remove="Helper\**" />
    <EmbeddedResource Remove="Helper\**" />
    <None Remove="Helper\**" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="5.0.3" />
  </ItemGroup>
  
  <ItemGroup>
    <SupportedPlatform Include="browser" />
  </ItemGroup>

</Project>

我觉得很奇怪,该参考在同一个解决方案中工作,但在另一个 WASM 解决方案中使用该包不起作用,但在另一个 Blazor 服务器解决方案中却可以......

有什么建议可以在这里检查吗?

谢谢,

约尔格

blazor
4个回答
0
投票

我想我也有同样的问题,但情况略有不同。我有一个 Blazor WASM,还为我的可重用组件创建了一个 RCL。我将所有组件转移到 RCL,并将 Blazorise lib 下载到该 RCL,然后当我尝试将其引用到我的 Blazor WASM 时,我遇到了与您相同的错误。我尝试了不同的在线解决方案,例如重新启动 VS、删除

.vs
文件夹、删除
bin
文件夹等,但似乎没有任何效果。

我是如何解决的

我创建了一个新的 RCL 并立即将其引用到我的 Blazor WASM 应用程序,看看它的反应是否相同但没有错误。我把我的组件一一转移,看看哪里会触发错误,但没有发现错误。最后,我将 Blazorise 安装到我的 RCL 中,但仍然没有错误。所以基本上我现在有一个可以工作的 RCL,它基本上与出现错误的 RCL 相同。唯一的区别是我在传输组件之前先引用了它。我不知道为什么另一个有错误,但这个解决方案可能对其他人有帮助。


0
投票

我也有同样的问题,这是微软没有发送正确的异常详细信息的问题,所以你可以使用发布你的 blazor wasm 应用程序

dotnetpublish-v详细

这样你就会看到正确的异常


0
投票

转到 Visual Studio 中的包参考(您的项目 > 依赖项 > 包)并检查 dll 的确切名称。名称区分大小写。在我的 .csproj 文件中,名称为“iTextSharp”,但在包参考中其名称为“itextsharp.dll”。当我将其更改为“itextsharp.dll”时,错误已清除。希望这对某人有帮助


0
投票

最佳解决方案是在添加 Razor 类库时不要启用“支持页面和视图”,只需取消选中它即可。 已添加详细视频,您可以使用相同的 razor 组件参考 webapp、automode 和 webassemblt 所有模式的更多步骤

© www.soinside.com 2019 - 2024. All rights reserved.