首页新闻找找看学习计划

.net core环境下如何清除某个nuget包的本地缓存

0
悬赏园豆:30 [已解决问题] 解决于 2018-06-11 18:15

请问 .net core 环境下如何清除某个 nuget 包的本地缓存?操作系统是 linux 。

dudu的主页 dudu | 高人七级 | 园豆:39706
提问于:2018-06-11 17:52
< >
分享
最佳答案
0

单独清除某个包的本地缓存比较麻烦,没有专门的命令,为了省事,采用了下面的命令清除所有包的缓存

dotnet nuget locals all -c
dudu | 高人七级 |园豆:39706 | 2018-06-11 18:14

清除所有包缓存需要重新构建很久

anhuisunfei | 园豆:6 (初学一级) | 2019-07-26 14:41
其他回答(1)
0

dudu大佬,你好。当初做毕业设计时在 ASP.NET Core 2.0 环境下做网站的过程中,对于nuget包管理我一般采用两种方案,希望对你有所帮助。因为对dnc不是很了解又是第一次接触开发,当时看微软参考文档自学的,所以不清楚缓存包的概念,希望没有浪费你的时间。

.NET Core 使用Nuget包一般是先写入csproj文件,然后下载保存在\bin\Debug\netcoreapp2.0\publish\下,所以可以采用如下方案进行删除操作。

第一种:修改配置和手动删除文件(不建议)

对于任何系统环境下都有效,直接修改csproj文件,nuget包都包含在这个文件下,修改后删除你本地相同包名称的文件就行。

例如:删除<PackageReference Include="Microsoft.AspNetCore.Session" Version="2.0.1" />这行代码后(本行删除后重新打开项目,该nuget包就被项目移除了),删除 项目位置\bin\Debug\netcoreapp2.0\publish\Microsoft.AspNetCore.Session.dll 文件就可以删除该nuget包。

第二种:采用 Nuget 包管理命令(建议)

使用如下命令进行Nuget包的删除操作(对于所有安装.NET Core 的系统都通用):

以删除Microsoft.AspNetCore.Session包为例:在项目目录下使用如下命令即可,由于没有安装Linux下的.NET Core
所以在Windows下做演示。

F:\文档\Visual Studio Code\MyWeb\MyWeb.Web>dotnet remove MyWeb.Web.csproj package Microsoft.AspNetCore.Session
info : Removing PackageReference for package 'Microsoft.AspNetCore.Session' from project 'MyWeb.Web.csproj'.

你可以参考官网说明:https://docs.microsoft.com/zh-cn/nuget/tools/dotnet-commands

其中移除命令的具体使用如下:

使用情况: dotnet remove <PROJECT> package [选项] <PACKAGE_NAME>

参数:
  <PROJECT>        要操作的项目文件。如果未指定文件,则命令会在当前目录下搜索一个文件。
  <PACKAGE_NAME>   要删除的包引用。

河图书卦 | 园豆:229 (菜鸟二级) | 2018-06-11 20:49

你这里说的是删除nuget包引起,我提的问题是删除nuget包本地缓存,从nuget服务器重新下载

支持(0) 反对(0) dudu | 园豆:39706 (高人七级) | 2018-06-12 09:19

@dudu:
谢谢,确实如此。

如果安装包时遇到问题或想要确保从远程库安装包,使用 locals --clear 选项 (dotnet.exe) 或 locals -clear (nuget.exe),指定要清除的文件夹,或使用 all 清除所有文件夹。难怪我没用过这个命令,因为平时没关心过缓存文件夹里的文件,至少对正在使用的项目本身的影响我尚不理解,dudu大佬,按我个人理解项目不会添加没有写入配置文件里的缓存区的下Nuget 包,我们清除缓存是在缓存区某个Nuget包出现问题时,而使用该包的项目添加了这个存在问题的Nuget包从而导致项目无法执行目标操作,然后清除这些缓存包让项目重新添加正常的Nuget包吗?如果是解决某个包的问题建议参考以下解决方案:

nuget install <packageID | configFilePath> [options]

options: NoCache 防止 NuGet 使用缓存的包。

本人小白,有点爱钻牛角尖,如有冒犯多多包含,谢谢各位。

支持(0) 反对(0) 河图书卦 | 园豆:229 (菜鸟二级) | 2018-06-14 04:16

@河图书卦: 提问时对应的场景是:在nuget服务器上发布了同样版本号的nuget包,想让客户端重新从服务器下载

支持(0) 反对(0) dudu | 园豆:39706 (高人七级) | 2018-06-14 08:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册