.net - 项目本地 NuGet 存储库是否有约定?

标签 .net nuget dependency-management

我几乎完成了一个大型解决方案的迁移,以使用 NuGet 作为依赖项。在此之前,该项目只有一个 Lib 目录,其中的子目录中包含所有二进制依赖项。但是,有一些依赖项在官方 NuGet 源中不可用。因此,我有几个选择:

  1. 将它们添加到官方 NuGet 提要中。
  2. 保留现有的 Lib 目录,其中包含任何非 NuGet 二进制文件。
  3. 创建一个项目本地 NuGet 提要,其中仅包含那些在官方提要中不可用的包。

我不喜欢#1,因为它暗示我将负责使软件包保持最新状态。我不喜欢 #2,因为在一个解决方案中有两种管理依赖关系的机制很麻烦。

因此,我倾向于 #3,但找不到任何关于约定的文档。我了解如何创建本地提要,如何将其告知 Visual Studio 等等。我找不到的是关于包含本地提要的目录的命名是否有约定以及这种方法可能需要的任何其他内容。有谁知道标准做法是什么?

最佳答案

您缺少的是选项 #4 - 设置私有(private) NuGet 存储库。这是解决此问题的标准做法。

有几个私有(private) NuGet 服务器可用,包括我公司 ( Inedo ) 的一个:

  • Nuget.Server - 免费/开源;非常有限
  • ProGet - 用于防火墙后面;提供免费版本
  • MyGet - 托管服务;提供免费版本
  • Artifactory - 多平台(Java 等)

“依赖管理器”(即 NuGet)的全部意义在于管理项目之间的依赖关系,因此拥有“项目本地存储库”真的毫无意义——这实际上只是一个非常复杂的“库”文件夹。

关于.net - 项目本地 NuGet 存储库是否有约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15479198/

相关文章:

.net - 元数据类型问题

asp.net - 用于.NET Core的NuGet服务器

nuget - Visual Studio 2017无法在.NET 4.7项目中安装nuget包

java - 编译错误 - 包不存在 - Java

如果在配置文件中使用,Maven 导入的依赖项不会得到解析

c# - 使用 .NET + Linq 创建项目列表时是否可以使用匿名方法?

c# - 启动新进程时如何指定带空格的参数

.net - 删除父级时如何避免绑定(bind)错误

.net-core - 如何更新 dotnet cli 使用的 nuget.exe 版本

java - maven项目依赖于eclipse中的gradle一