.NET 依赖管理:`dotnet add package` 与 Paket?

问题描述 投票:0回答:1

许多较旧的项目(即超过 5 年的项目)向 Paket .NET 依赖管理器(例如,Suave)提供说明,所以我开始深入研究它,感到困惑,然后因为错误而放弃了一段时间不断出现,我只是想取得进步。

我在项目中达到了必须正确添加包的程度(而不是在测试时仅将它们拉入 CLI),因此我搜索了术语

dotnet add external package project to solution
,其中最突出的结果是:

阅读完后,

dotnet add package
看起来正是 Paket 正在做的事情:将 NuGet 包添加到 .NET 项目。我是不是错过了什么?

编辑Suave的NuGet页面似乎确认它们提供相同的功能,但是,与.NET CLI指令不同,在Paket下面有一个警告,暗示它是第三方解决方案:

NuGet 团队不为此客户端提供支持。请联系其维护者以获得支持。


据我所知,

  • 有一个历史解释:Paket 是在 10 多年前创建的,当时可能还没有任何本机依赖管理解决方案。 (阅读 .NET 历史让我头晕目眩,看起来 2020 年代之后事情开始显着加速。)

  • Paket 还允许添加 NuGet 中没有的依赖项,例如 GitHub 存储库。 (我见过的大多数问题都是人们想要实现同样的目标 - 例如,12 -,答复是这些项目应该转换为 NuGet 包并上传到那里 - 除非我误读了某些内容..)

  • Paket 创建一个可以添加到版本控制的外部锁定文件。 (

    dotnet add package
    还可以添加特定版本的包,但不确定它与使用锁定文件相比如何。)

.net-core nuget paket
1个回答
0
投票

NuGet 由 Microsoft 创建,一直是 .NET 应用程序的默认、简单、内置包管理器;

dotnet add package
本质上做同样的事情。

Paket 是一个第三方包管理器,其语义有些不同。

我在项目中达到了必须正确添加包的程度(而不是在测试时仅将它们拉入 CLI)

通过 NuGet 将包添加到 .NET 项目的方法只有一种,那就是将它们记录在其

.csproj
文件中。不管你如何做,通过 GUI 或 CLI,就是这样。您是否考虑过对 .NET 中的包管理如何工作以及它如何实现这一目标进行一些基础研究

有一个历史解释:Paket 是在 10 多年前创建的,当时可能还没有任何本机依赖管理解决方案

更多基础研究表明,NuGet 目前已经存在超过 13 年了。

进一步的基础研究解释说,Paket 的创建是为了解决 NuGet 中被认为的各种遗漏或缺陷。

几乎可以肯定,您既不想也不需要使用 Paket,除非它提供了 NuGet 所缺少的东西,而您绝对不能没有它。

© www.soinside.com 2019 - 2024. All rights reserved.