Paket依赖组不仅仅是解决版本冲突的一种方式吗



运行dotnet new fake时生成的paket.dependencies示例文件当前看起来像:

// [ FAKE GROUP ]
group Build
source https://api.nuget.org/v3/index.json
nuget Fake.DotNet.Cli
nuget Fake.IO.FileSystem
nuget Fake.Core.Target

我理解如何使用依赖组来解决版本冲突,但在出现实际的版本冲突情况之前,似乎没有必要引入它们。

Build组的语义是什么?为什么不在Main默认组下拥有三个依赖项?同样的反映也适用于Paket文档示例中的Test组。

在没有版本冲突的情况下,可以详细说明在组中隔离依赖项的原因吗?也许可以更多地解释构建测试组背后的原理?

因为我基本上已经介绍了FAKE 5:的拆分

理由是,一组依赖关系在BUILD时使用(即运行构建脚本时(,另一组用于您的项目RUN时。为这两个对象设置一组不同的依赖关系是完全有效的。

考虑以下场景:您在构建过程中使用FSharp.Formatting(FSF,一个markdown解析器(项目来生成API文档,并在项目中使用该项目来生成网站。现在您想通过更新FSF来更新API文档,但由于兼容性原因,您无法在项目中升级FSF。由于BUILD和RUN时间之间的分离,这不是问题,您可以在不同的版本中将它们视为"不同"的依赖项。

我希望看到类似于节点分离dependenciesdev-dependencies的方法

关于RUN和TEST之间的分歧:就我个人而言,我不是一个超级粉丝。我可以看到人们希望如何分离他们的依赖关系,但paket目前并不"真正"支持这种情况,而且这种方法确实会遇到问题。我目前的建议是不要在RUN和TEST之间分开,将它们管理在一个小组中。

为了在RUN&TEST包需要一个新功能来引用另一组:

group Run source https://api.nuget.org/v3/index.json nuget MyDep1 group Test reference_group Run source https://api.nuget.org/v3/index.json nuget MyRunner1

类似于外部锁定文件功能:https://github.com/fsprojects/Paket/pull/3062#issuecomment-367658114

相关内容

  • 没有找到相关文章

最新更新