使用.NET 6 RC2运行.NET MAUI应用单元测试报错如何解决?
报错成因
- .NET 6 Release Candidate 2阶段的MAUI还属于预览工作负载,
Microsoft.Maui.Core的版本号没有硬编码到SDK中,而是用动态绑定标记**FromWorkload**替代,由本地安装的MAUI工作负载提供实际版本号 - 单元测试项目的默认构建逻辑不会触发MAUI工作负载的版本解析流程,执行
dotnet test时,测试宿主进程无法识别**FromWorkload**标记,也就匹配不到本地已安装的MAUI运行时 - 若单元测试项目仅引用了MAUI类库,自身没有配置MAUI相关构建属性,SDK不会向测试进程注入MAUI运行时的查找路径,也会触发该报错
解决方案
- 给单元测试项目的
.csproj配置文件添加MAUI工作负载识别属性,开启版本解析:
<PropertyGroup> <!-- 开启MAUI工作负载识别 --> <UseMaui>true</UseMaui> <!-- 单元测试仅保留桌面端目标框架即可 --> <TargetFrameworks>net6.0</TargetFrameworks> <OutputType>Exe</OutputType> </PropertyGroup>
- 确认本地安装了对应版本的MAUI工作负载,执行以下命令安装:
dotnet workload install maui --sdk-version 6.0.100-rc.2.21505.57 - 若修改配置后仍报错,可以手动锁定MAUI相关包的版本,覆盖动态标记:
<ItemGroup> <PackageReference Include="Microsoft.Maui.Core" Version="6.0.100-rc.2.1683" /> <!-- 其他用到的MAUI依赖包可同步指定对应RC2版本 --> </ItemGroup>
- 临时方案可直接使用Visual Studio 2022 RC2的测试资源管理器执行测试,IDE会自动补全MAUI运行时的查找路径,避免命令行解析异常。
内容的提问来源于stack exchange,提问作者Brandon Minnick
相关产品推荐
相关产品推荐

