为何.NET Framework项目的Visual Studio NuGet包管理器Version列显示空白?
问题复现参考截图

问题原因
- 你发布的NuGet包没有声明适配.NET Framework的目标框架别名(TFM,即
net45、net48这类对应.NET Framework版本的标识),仅包含了.NET Core/.NET Standard的TFM。NuGet依赖兼容 fallback 逻辑允许你在.NET Framework项目中安装该包,因此已安装列会有数值,但无法匹配到完全适配当前项目框架的推荐版本,导致Version列空缺。 - 少数情况下也可能由本地NuGet缓存损坏、包版本号不符合NuGet官方规范导致解析失败引发该问题。
空值含义
Version列空代表NuGet管理器没有为当前项目的目标框架匹配到官方适配的推荐安装版本。此时点击安装按钮会默认拉取该包的最新可用版本(若开启预发布开关则包含预发布版本),但安装后可能存在兼容性问题,比如运行时依赖缺失、API调用报错等。
你猜测的迁移遗留问题是成立的:NuGet在.NET Core/Standard推广阶段引入的跨框架兼容 fallback 逻辑,就是为了让旧框架项目可以安装新格式的包,才会出现「允许安装但无明确适配版本标识」的表现。
内容的提问来源于stack exchange,提问作者Brondahl
相关产品推荐
相关产品推荐

