.NET 9下Blazor WebAssembly项目构建报错:MonoTargetsTasksAssemblyPath值无效
解决.NET 9 Blazor WebAssembly项目加载时$(MonoTargetsTasksAssemblyPath)为空的错误
以下是针对该问题的实用排查和解决步骤:
检查.NET 9工作负载完整性
执行dotnet workload list命令,确认wasm-tools及相关.NET 9 WASM组件是否已正确安装。如果发现缺失或状态异常,执行dotnet workload restore命令,该命令会自动检测并修复缺失的工作负载组件,比单独执行install命令更全面。手动指定任务程序集路径
在Client项目的.csproj文件中添加如下配置,强制指定MonoTargetsTasksAssemblyPath的路径:<PropertyGroup> <MonoTargetsTasksAssemblyPath>C:\Program Files\dotnet\packs\Microsoft.NET.Runtime.WebAssembly.Sdk\9.0.0\Sdk\Tasks\netstandard2.0\Microsoft.NET.Runtime.WebAssembly.Tasks.dll</MonoTargetsTasksAssemblyPath> </PropertyGroup>注意替换路径中的版本号(
9.0.0)为你实际安装的.NET 9 SDK版本。清理项目及全局缓存
- 删除项目目录下的
bin和obj文件夹 - 执行
dotnet nuget locals all --clear清理dotnet全局缓存 - 重启Visual Studio后重新加载项目
- 删除项目目录下的
修复Visual Studio的.NET 9组件
打开Visual Studio安装器,确认已勾选.NET 9 WebAssembly构建工具组件,直接选择"修改"并点击"修复",确保组件安装无损坏。排查跨IDE配置冲突
由于之前使用过Rider并清理过缓存,删除项目根目录下的.idea文件夹(如果存在),避免Rider的残留配置干扰Visual Studio的项目加载逻辑。
这个错误本质上是.NET 9 WASM SDK的任务程序集路径未被正确识别,可能由工作负载安装不完整、IDE缓存冲突或SDK配置加载异常导致,而.NET 8作为稳定版本,其工作负载配置逻辑更成熟,因此未出现同类问题。
内容的提问来源于stack exchange,提问作者Kyle Baley
相关产品推荐
相关产品推荐

