我是曾经使用过Maven和Gradle的Java开发人员,现在进入.NET并试图了解Paket。据我了解,Paket具有三个支持.NET解决方案的依赖管理的不同文件:
一个根paket.dependencies文件,您在其中列出直接的依赖关系和版本。
项目特定的paket.references文件,其中列出了已经在paket.dependencies中列出的依赖项的子集。
一个paket.lock自动生成的文件,其中列出了所有直接和传递依赖关系及其版本。
使用Maven和Gradle,我习惯于在一个文件中指定我的依赖项。我可以指定确切的版本,并确保以后下载的依赖项将相同。 Paket为什么需要三个文件?我希望每个项目中的一个paket.references文件就足够了。在.NET世界中,如何管理依赖项是否存在一些问题或怪癖,而我不知道需要这三个文件吗?
最佳答案
一个根paket.dependencies文件-您可以在此文件中对依赖项进行分组,从而访问同一依赖项的不同版本。
项目特定的paket.references文件-在paket.dependencies中为单个项目定义的依赖项。 (可选)在一组paket.dependencies文件中引用一个依赖项。
一个paket.lock自动生成的文件-您的构建将使用此文件,而不是其他文件,以确保引用透明。您可能会或可能不会在paket.dependencies中包含版本指定说明。每次将paket.lock文件锁定构建为相同的特定版本。您必须有意识地采取某种措施,通常是使用paket更新或paket安装来更新您想要下一个版本使用的版本。