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

.NET 7.0添加多目标项目引用触发NU1702警告如何解决?

修复NU1702警告的方法

原因分析

你的多目标项目同时面向.NET 7.0和.NET 4.8,而被引用的Blazor WASM项目仅支持.NET 7.0。MSBuild在解析项目引用时,可能因为.NET Framework 4.8的存在,错误地尝试用.NET Framework规则解析Blazor项目,导致框架不匹配警告。

解决方案

1. 仅在.NET 7.0目标下引用Blazor WASM项目

由于Blazor WASM不支持.NET Framework 4.8,你的多目标项目的.NET 4.8版本本就不应引用该项目。修改项目文件,添加条件判断,让引用仅在构建.NET 7.0版本时生效:

<ProjectReference Include="..\some_project\some_project.csproj" 
                  Condition="'$(TargetFramework)' == 'net7.0'" />

这样.NET 4.8构建时会自动忽略这个引用,避免框架不匹配的问题。

2. 显式指定引用的目标框架

如果你的多目标项目的.NET 4.8版本确实需要引用该项目(需确保存在特殊适配逻辑),可以在引用中强制指定要解析的目标框架,确保.NET 7.0构建时匹配正确的版本:

<ProjectReference Include="..\some_project\some_project.csproj">
  <SetTargetFramework>TargetFramework=net7.0</SetTargetFramework>
  <PrivateAssets>all</PrivateAssets>
</ProjectReference>

<SetTargetFramework>会告诉MSBuild在解析该引用时,使用指定的.NET 7.0框架,避免错误匹配到.NET Framework 4.8。

3. 配置Blazor WASM项目的输出标识

在Blazor WASM项目的.csproj文件中,添加框架类型标识,帮助MSBuild正确识别其目标框架:

<PropertyGroup>
  <TargetFramework>net7.0</TargetFramework>
  <TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
  <BlazorWebAssembly>true</BlazorWebAssembly>
</PropertyGroup>

这能让多目标项目在解析引用时,更准确地匹配到对应的.NET 7.0输出。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:18:26