.NET Core中的NuGet依赖关系

3
如果我安装了一个Nuget包Package1,它将被添加到Dependencies/Packages/Package1。当我安装另一个有依赖于Package1的Nuget包Package2时,将会添加Dependencies/Packages/Package2/Package1
在这种情况下,我现在拥有以下内容:
Dependencies
|_Packages
  |_Package1
  |_Package2
    |_Package1

存在Package1的重复性。我应该删除Dependencies/Packages/Package1,还是像现在这样没问题?这样不会占用更多的空间吗?

3个回答

5

假设您的直接依赖和间接依赖都使用相同的主要版本,那么就没有问题。如果它们有不同的主要版本,您可能会遇到麻烦,因为它们可能不兼容。(在我看来,这是.NET版本控制的一个弱点。)

如果您想要的是晚于Package2依赖版本的软件包,您可以删除直接依赖。例如,如果Package2依赖于Package1版本1.2.0,但您需要的是仅在Package1版本1.5.0中才有的内容,则明确声明该依赖关系是可行的。将只部署Package1的一个版本。


4
这个用户界面特性并不能展示磁盘上的文件。它是一个逻辑依赖层次结构,而Nuget并没有将下载的软件包以这种方式物理存储。你无法“删除”它们,因为用户界面只是在呈现事实——这个软件包确实依赖于其他软件包。
(我花了一些时间才明白您的问题,因为我一直在寻找这个结构在磁盘上的存在,但却找不到。)

1
如果 Package2/Package1 包含了 Package1 独自包含的所有内容,那么您就不需要两次引用它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接