You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor WebAssembly项目无法引用.NET Core类库问题求助

报错根因

Blazor WebAssembly运行于浏览器的WebAssembly沙箱环境,仅支持引用无服务端依赖的.NET类库。你当前的类库引用了Piranha.AspNetCore、Microsoft.EntityFrameworkCore.SqlServer等仅可在服务端运行的组件,且包含数据库访问逻辑,无法在前端WebAssembly环境中运行,因此会触发无法引用ASP.NET Core共享框架项目的报错。
将类库目标框架修改为.NET Framework的方案完全不可行,Blazor WebAssembly基于.NET Core/.NET 5+生态,与.NET Framework不兼容,会直接导致类库运行异常。

你提供的类库项目文件内容如下:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.9" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.9">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.9" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.9">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Piranha" Version="9.1.1" />
    <PackageReference Include="Piranha.AspNetCore" Version="9.1.0" />
  </ItemGroup>
</Project>
可行解决方案

根据你的实际使用场景选择对应方案:

场景1:仅需复用类库中的通用模型、工具方法

将现有类库拆分为两个独立项目:

  • 新建通用类库,项目SDK使用Microsoft.NET.Sdk,目标框架与你的Blazor WebAssembly项目保持一致,仅存放无服务端依赖的实体模型、DTO、通用工具方法,移除所有AspNetCore、EF Core SqlServer、Piranha相关包引用。
  • 原有类库保留服务端相关代码、所有服务端依赖包,仅提供给服务端项目引用。
  • Blazor WebAssembly项目直接引用拆分后的通用类库即可。

场景2:需要调用类库中的数据访问、Piranha相关业务逻辑

  • 在你的ASP.NET Core后端服务项目中引用该类库,将需要用到的业务逻辑封装为Web API接口对外暴露。
  • Blazor WebAssembly项目通过HTTP请求调用后端API获取对应数据、执行业务操作,不要尝试直接在前端执行数据库访问、服务端逻辑。

内容的提问来源于stack exchange,提问作者brad。

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:54:02