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

UWP与EF Core编译警告求助:含114条警告及NU1603异常

解决UWP+EF Core开发中的编译警告(含NU1603)

我来帮你梳理下这个问题的可能原因和解决思路,毕竟用VS2017做UWP+EF Core开发时,确实容易碰到这类依赖和兼容性警告——虽然数据表显示正常,但这些警告往往藏着潜在的版本冲突问题。

先聚焦核心:NU1603警告

NU1603本质是NuGet依赖版本冲突:某个直接/间接引用的包,依赖的版本和你项目中实际安装的版本不匹配,VS2017的NuGet解析引擎对这类冲突的提示会比较啰嗦,甚至引发连锁警告。你可以按以下步骤排查:

  • 查看警告详情:打开VS的「输出」窗口,切换到「生成」输出类别,找到NU1603的具体描述,明确是哪个包(比如EF Core相关组件、UWP基础库)引发的冲突,以及涉及的版本号。
  • 统一EF Core包版本:UWP对EF Core的版本兼容性要求严格,确保你项目中所有EF Core相关包(Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.SqlServer、Microsoft.EntityFrameworkCore.Tools等)的版本完全一致。比如VS2017环境下,EF Core 2.1.x系列对UWP的支持最稳定,尽量避免使用3.x及以上版本(这类版本更适配VS2019+)。
  • 清理并还原NuGet包:右键解决方案→「清理解决方案」,然后右键→「还原NuGet包」,清除本地缓存的旧包文件,强制重新拉取匹配版本的依赖。
  • 手动约束依赖版本:如果是间接依赖的包引发冲突,可以在项目的.csproj文件中,给对应的PackageReference添加版本约束,比如:
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.16" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.16" />
    

处理剩余的114条警告

大部分警告应该是NU1603引发的连锁提示,或者是UWP项目特有的兼容性警告,你可以按类型分类处理:

  • 过时API警告:如果警告提示某个API已过时,先查看官方文档替换为推荐的新API;如果暂时不想修改代码,可以在项目属性→「生成」→「警告」中,添加对应的警告编号(比如CS0618)到「禁止显示警告」列表。
  • 包兼容性警告:部分第三方包对UWP的支持可能是预览版或有版本限制,若不影响功能可以暂时忽略;如果介意,可寻找功能类似且UWP兼容性更好的替代包。
  • 项目版本配置问题:检查UWP项目的「目标版本」和「最低版本」是否一致,且符合EF Core的要求(EF Core 2.x要求UWP最低版本为10.0.16299),版本不匹配会触发大量兼容性警告。

VS2017专属建议

VS2017的NuGet和UWP工具链不如后续版本完善,建议你把VS2017更新到最新的补丁版本(比如15.9.x),很多旧版本的依赖解析bug会在补丁中修复,能减少不少莫名的警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:55:42