许多较旧的项目(即超过 5 年的项目)向 Paket .NET 依赖管理器(例如,Suave)提供说明,所以我开始深入研究它,感到困惑,然后因为错误而放弃了一段时间不断出现,我只是想取得进步。
我在项目中达到了必须正确添加包的程度(而不是在测试时仅将它们拉入 CLI),因此我搜索了术语
dotnet add external package project to solution
,其中最突出的结果是:
[Microsoft Learn] 使用
dotnet
CLI 安装和管理 NuGet 包
dotnet add package
命令 - .NET CLI
阅读完后,
dotnet add package
看起来正是 Paket 正在做的事情:将 NuGet 包添加到 .NET 项目。我是不是错过了什么?
编辑:Suave的NuGet页面似乎确认它们提供相同的功能,但是,与.NET CLI指令不同,在Paket下面有一个警告,暗示它是第三方解决方案:
NuGet 团队不为此客户端提供支持。请联系其维护者以获得支持。
据我所知,
NuGet 由 Microsoft 创建,一直是 .NET 应用程序的默认、简单、内置包管理器;
dotnet add package
本质上做同样的事情。
Paket 是一个第三方包管理器,其语义有些不同。
我在项目中达到了必须正确添加包的程度(而不是在测试时仅将它们拉入 CLI)
通过 NuGet 将包添加到 .NET 项目的方法只有一种,那就是将它们记录在其
.csproj
文件中。不管你如何做,通过 GUI 或 CLI,就是这样。您是否考虑过对 .NET 中的包管理如何工作以及它如何实现这一目标进行一些基础研究?
有一个历史解释:Paket 是在 10 多年前创建的,当时可能还没有任何本机依赖管理解决方案
更多基础研究表明,NuGet 目前已经存在超过 13 年了。
进一步的基础研究解释说,Paket 的创建是为了解决 NuGet 中被认为的各种遗漏或缺陷。
几乎可以肯定,您既不想也不需要使用 Paket,除非它提供了 NuGet 所缺少的东西,而您绝对不能没有它。