为什么.nuget \ Packages目录中有类似的Nuget软件包文件夹?

时间:2020-03-27 19:50:14

标签: nuget

c:\Users\<USER NAME>\.nuget\packages\目录下,有些文件夹看起来类似,例如:

  • System.IO.FileSystem.4.3.0
  • system.io.filesystem(下面有子文件夹“ 4.3.0”)

参见附图。 我的问题:为什么.nuget \ Packages目录中有类似的Nuget软件包文件夹?我可以删除其中之一吗?

Nuget Package folder

1 个答案:

答案 0 :(得分:1)

可能您在计算机上使用了旧版本的NuGet或Visual Studio,它们使用了旧格式。另一个选项是您有一个nuget.config,它可以强制解决方案软件包文件夹成为用户配置文件的全局软件包文件夹。我真的不建议这样做。

也许从NuGet 3.0(Visual Studio 2015)开始,NuGet使用tolower(packageid)\tolower(packageversion)\文件夹结构。我懒得测试旧版本来验证较早版本使用了不同的东西。或者,也许NuGet始终对全局包文件夹使用相同的格式,从而使packages.config成为唯一的答案。但是我真的认为,小写规范化是添加的,并不总是存在。

使用packages.config的项目在 solution 软件包文件夹中始终使用未经修改的PackageId.PackageVersion格式。我认为,这是一些客户依赖更改解决方案包文件夹中的重大更改的风险太大。因此,如果有人误导了他们的想法,那就是可以通过使所有解决方案的所有解决方案共享相同的package文件夹(通过对所有解决方案使用相同的文件夹)来节省磁盘空间,并且他们使用的文件夹是globalpackages文件夹,则该文件夹的两个不同部分本质上使用不同的文件夹命名约定的NuGet将写入同一目录。

只要您不在构建的中间,就可以安全地删除任何程序包文件夹(问题所在的全局程序包或解决方案程序包文件夹)中的文件夹。如果项目需要删除的软件包,则NuGet会再次下载它,因此,如果您有下载配额或互联网连接缓慢,则请注意。否则,您可以随意删除文件夹。只要确保删除整个文件夹即可。 NuGet还原时仅查找一个文件,因此,如果删除其他文件但保留该文件,NuGet会认为该文件已正确下载和提取,但是您的计算机的行为与其他计算机不同。