为什么Paket需要三个文件来支持依赖管理?

jra*_*ali 8 .net build dependency-management maven paket

我是一名习惯于Maven和Gradle的Java开发人员,现在进入.NET并尝试了解Paket.根据我的理解,Paket有三个不同的文件支持.NET解决方案的依赖管理:

  1. 一个root paket.dependencies文件,其中列出了直接依赖项和版本.
  2. 一个项目特定的paket.references文件,其中列出了您在paket.dependencies中列出的依赖项的子集.
  3. 一个paket.lock自动生成的文件,列出所有直接和传递依赖项及其版本.

使用Maven和Gradle,我习惯在一个文件中指定我的依赖项.我可以指定确切的版本,并确保后续依赖的下载将是相同的.为什么Paket需要三个文件?我希望每个项目中的paket.references文件就足够了.在.NET世界中是如何管理依赖关系的一些问题或怪癖我不知道需要这三个文件?

Jac*_*Fox 2

  1. 根 paket.dependency 文件——您可以在此文件中对依赖项进行分组,从而访问同一依赖项的不同版本。
  2. 项目特定的 paket.references 文件——在 paket.dependency 中为单个项目定义的依赖项。可以选择引用一组 paket.dependency 文件中的依赖项。
  3. paket.lock 自动生成的文件——您的构建将在该文件上运行,而不是其他文件,以确保引用透明度。您可能会也可能不会在 paket.dependency 中包含版本指定指令。paket.lock 文件每次都会将构建锁定到相同的特定版本。您必须有意采取某种操作,通常使用 paket update 或 paket install 来更新您希望下一个版本使用的版本。