代码之家  ›  专栏  ›  技术社区  ›  Petr Macek

对于像Nexus或Artifactory这样的Java工件库,有没有一个.NET替代品?在哪里存储版本化的DLL?

  •  12
  • Petr Macek  · 技术社区  · 15 年前

    在哪里存储teamsystem上自动构建所需的二进制文件?

    有一个需要能够恢复到一些外部库的早期版本,以修复发布版本中的错误,但是版本不兼容。分支可以做到这一点,但我认为将二进制文件与代码一起存储是反模式的。

    5 回复  |  直到 14 年前
        1
  •  3
  •   pacease    10 年前

    Nexus和Artifactory目前都支持存储.net开发中使用的二进制工件和依赖项。对于使用NuGet包构建TFS并集成到visualstudio,您可以查看 this blog.

        2
  •  1
  •   Community CDub    7 年前

    我一直用svn:外部这在过去,正如 cringe . 但在本地工作副本中更新很慢。我已经和几个朋友启动了一个开源项目来尝试解决这个问题,这个问题还处于非常早期的阶段,但是如果这是一个你感兴趣的问题,你可能想继续关注它(甚至帮助它)。它叫做Refix hosted on CodePlex

        3
  •  0
  •   Per-Frode Pedersen    15 年前

    我们总是在版本控制系统(VCS)中存储外部二进制依赖项以及源代码、图像、构建脚本和构建解决方案所需的所有其他工件。这就是我真正擅长的一个VCS,它确保我们拥有所有必要工件的正确版本,可以用于任何版本的构建,甚至分支。

    我很好奇:为什么你会认为这是一个反模式?

        4
  •  0
  •   cringe    15 年前

    例如,Subversion就有 svn:externals 进口 另一个目录的内容与你的库。外部可能是 别针 嵌套工作副本

        5
  •  0
  •   Mickalot    10 年前

    (我知道这是一个老问题,但我典型的基于Java的团队现在正在做一些.NET工作并提出同样的问题,下面是我们的发现。)

    如果您使用的是像Git这样的DVCS系统,那么如果将这些库签入源代码管理,您可能会遇到性能问题,这是完全正确的。作为参考,我们将几个带有签入二进制文件的大型项目(2-5GB)从Perforce转换为Git。导入的Git repos的性能(在使用ssd的健壮Windows设备上使用git1.9)对于开发来说是非常缓慢的。我们对构建进行了调整,从私有Nexus实例中提取了大部分依赖项,而且非常精简的repos(50-200MB源代码)似乎表现良好。

    如果您已经有一个Nexus实例可用,那么没有什么可以阻止您使用它来存储.NET工件——就Nexus而言,工件只是一个文件。如果您将dll和配置文件等压缩到一个文件中,Nexus很乐意将其作为一个版本化的工件托管,并且您可以在需要时将其下载/解压缩到正确的位置。(我没有使用过Artifactory,所以我不能评论它的功能。)

    NuGet 现在似乎是新的答案。

    默认情况下,有一个中央NuGet提要,对读取没有访问限制。对于托管,看起来您可以提交OSS/公共二进制文件来托管在那里,如果您想托管专有/私有二进制文件,则有 instructions for setting up your own private NuGet feed .

    如果你有专业版的Nexus, it claims to host .NET artifacts and allow access through NuGet