.NET Framework 4.8控制台应用安装NuGet包(含System.Memory)失败求助
.NET Framework 4.8控制台应用安装NuGet包(含System.Memory)失败求助
兄弟,我之前也踩过类似的坑,.NET Framework 4.8的控制台项目装ScottPlot、ZedGraph这类带System.Memory依赖的NuGet包时,确实容易碰到“能连服务器但下载/安装失败”的问题,给你分享几个我亲测有效的排查和解决办法,你挨个试试:
- 先检查NuGet源和客户端版本:打开VS的「工具」→「NuGet包管理器」→「包管理器设置」,确认包源只有官方的nuget.org(别加奇怪的私有源),而且地址是
https://api.nuget.org/v3/index.json。另外,把NuGet客户端更到最新版,旧版本对.NET Framework 4.8的依赖解析经常出bug。 - 手动处理System.Memory依赖:很多绘图包都依赖System.Memory,虽然.NET Framework 4.8内置了相关API,但NuGet上的System.Memory包版本不对就会冲突。你可以打开「包管理器控制台」,先手动装兼容的版本:
Install-Package System.Memory -Version 4.5.5,这个版本和4.8适配度拉满,装完再去装ScottPlot或ZedGraph。 - 清空NuGet缓存:缓存损坏是重灾区!在包管理器设置里找到「NuGet包管理器」→「常规」,点击「清除所有NuGet缓存」;或者手动删掉本地缓存文件夹
C:\Users\[你的用户名]\.nuget\packages,删完重启VS再试安装。 - 本地安装的正确打开方式:如果你下载了本地nupkg包还是装不上,大概率是包版本不对或者安装姿势错了。首先要确保下载的是明确标注支持.NET Framework 4.8的包版本,然后要么在包管理器控制台执行
Install-Package [你的本地包绝对路径] -Source .,要么右键项目→「管理NuGet包」→右上角齿轮→添加本地文件夹作为包源,再从这个源里选包安装。 - 确认项目目标框架:别大意!右键项目→「属性」→「应用程序」,检查「目标框架」是不是真的选了.NET Framework 4.8,有时候误选成4.7.x会导致依赖不兼容,直接安装失败。
- 修复Visual Studio:如果上面的方法都不管用,可能是VS的组件出问题了。打开Visual Studio Installer,找到你的VS版本点「修改」→「修复」,虽然耗时,但能解决很多奇奇怪怪的底层问题。
我当时是缓存损坏加依赖版本不匹配的问题,按上面的步骤弄完就搞定了,你可以一个个试,哪个起效了记得回来报个喜~
备注:内容来源于stack exchange,提问作者Luciano Maraschi




