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

.NET MAUI Blazor集成RCL构建Android/iOS报NETSDK1005错误

.NET MAUI Blazor引入Razor类库构建报NETSDK1005错误解决方法

问题描述

基于Razor类库(Razor Class Library, RCL)构建支持Android、iOS平台的.NET MAUI Blazor应用,已按指南完成证书配置。未引入Razor类库时可正常生成构建产物,引入RCL执行构建时触发如下报错:

dotnet\sdk\6.0.400-preview.22301.10\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(267,5): error NETSDK1005: Assets file '\RazorClassLibrary\obj\project.assets.json' doesn't have a target for 'net6.0-android'. Ensure that restore has run and that you have included 'net6.0-android' in the TargetFrameworks for your project. [C:/RazorClassLibrary\RazorClassLibrary.csproj]

已尝试以下排查方案均未解决问题:

  • 删除项目obj文件夹
  • 执行NuGet包还原
  • 更新Visual Studio至最新版本
  • 更新MSBuild至最新版本
  • 项目中添加配置项<RuntimeIdentifier>android-arm64</RuntimeIdentifier>

解决步骤

1. 修正Razor类库的目标框架配置

报错核心原因是RCL项目的目标框架未包含移动端对应的TFM(目标框架别名)。右键RCL项目选择「编辑项目文件」,找到<TargetFrameworks>节点,补充和主MAUI项目匹配的移动端目标框架,参考配置如下:

<PropertyGroup>
  <!-- 版本号必须和主MAUI项目使用的.NET大版本完全一致,用.NET7就把net6.0替换为net7.0 -->
  <TargetFrameworks>net6.0;net6.0-android;net6.0-ios;net6.0-maccatalyst</TargetFrameworks>
  <Nullable>enable</Nullable>
  <ImplicitUsings>enable</ImplicitUsings>
  <RazorLangVersion>3.0</RazorLangVersion>
  <!-- 删掉之前手动加的固定RuntimeIdentifier配置,该配置会导致多平台还原异常 -->
</PropertyGroup>

2. 调整RCL项目的依赖配置

默认创建的Web端RCL模板会引入ASP.NET Core Web专属依赖,不兼容MAUI Blazor场景,需要在RCL的项目文件中添加MAUI兼容配置,同时移除MVC/Razor Pages相关的冗余配置:

<PropertyGroup>
  <UseMaui>true</UseMaui>
  <AddRazorSupportForMvc>false</AddRazorSupportForMvc>
</PropertyGroup>

确保RCL项目安装的Microsoft.AspNetCore.Components.WebView.Maui包版本和主MAUI项目引用的版本完全一致,禁止出现版本差。

3. 全量清理后重新还原构建

  • 关闭所有Visual Studio实例,删除整个解决方案下所有项目(包括主项目、RCL项目、其他类库项目)的bin、obj文件夹,不要只删除单个项目的缓存目录
  • 重新打开解决方案,先不要直接点击生成,右键解决方案选择「还原所有NuGet包」
  • 还原完成后,打开RCL项目obj目录下的project.assets.json文件,搜索net6.0-android字段,确认已生成对应平台的资产节点后,再执行构建即可。

避坑提示

  • 不要在项目文件全局配置固定的RuntimeIdentifier,该配置会覆盖构建时传入的平台参数,导致还原时漏掉其他平台的目标资产,RID配置仅需要在发布配置文件中单独指定即可。
  • 如果使用预览版SDK(比如报错中提到的6.0.400-preview版本),需要确保Visual Studio启用了预览版SDK使用权限,同时解决方案根目录的global.json指定的SDK版本和本地安装的预览版版本号完全匹配,否则会出现目标框架识别失败的问题。
  • 解决方案内所有项目的MAUI相关NuGet包版本必须完全统一,版本不一致会直接导致资产匹配失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:12:23