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

Blazor MAUI添加Razor Class Library引用报错,涉WebApi兼容性问题

解决思路

1. 替换旧版WebApi兼容包

你遇到的NU1701警告核心是Microsoft.AspNet.WebApi.Core 5.2.9是.NET Framework专属包,和Blazor MAUI的跨平台目标框架(net7.0-android等)不兼容。直接替换为ASP.NET Core生态的包:

  • 卸载RCL中的Microsoft.AspNet.WebApi.Core
  • 安装Microsoft.AspNetCore.Mvc.WebApiCompatShim(用于兼容旧WebApi路由逻辑),或者直接基于ASP.NET Core的HttpClient实现API调用,完全抛弃旧WebApi包依赖。
  • 调整RCL中API调用的代码,适配新的包(比如用HttpClient.SendAsync替代旧WebApi的HttpClient.PostAsJsonAsync这类专属方法)。

2. 隔离API调用逻辑

把RCL中依赖WebApi包的API调用逻辑抽离到独立的类库项目(目标框架设为.NET Standard 2.0或net7.0),这个类库仅用HttpClient实现API请求,不依赖任何旧.NET Framework包。

  • RCL只引用这个独立的API客户端类库
  • Blazor Server和Blazor MAUI分别在各自的服务容器中注册这个API客户端服务,即可复用逻辑同时避开兼容性问题。

3. 临时忽略警告(不推荐用于生产)

如果只是临时测试功能,可以在MAUI项目的.csproj文件中添加配置忽略NU1701警告,但可能引发运行时异常:

<PropertyGroup>
  <NoWarn>NU1701</NoWarn>
</PropertyGroup>

4. 适配授权逻辑

若RCL中使用了旧WebApi的授权组件(比如System.Web.Http.AuthorizeAttribute),这类组件在MAUI中无法正常工作,需要替换为ASP.NET Core的授权体系:

  • 改用Microsoft.AspNetCore.Authorization中的[Authorize]特性
  • 针对MAUI的身份认证场景,使用适配移动端的认证库(比如Microsoft.Identity.Client)实现授权逻辑,确保和Blazor Server的授权逻辑一致但适配MAUI环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:10:31