【问题标题】:NuGet - repositories.configNuGet - repositories.config
【发布时间】:2011-11-09 07:38:59
【问题描述】:

NuGet 新手问题-
我看到 repositories.config 被添加到 NuGet 包文件夹中。
谁能指导我这个文件的目的是什么?

谢谢!

【问题讨论】:

标签: nuget


【解决方案1】:

这是一个主要是 NuGet 实现细节的文件,不应直接处理(它可能会消失或在未来发生变化)。

但作为参考,它包含指向解决方案中所有 packages.config 的路径列表。通常每个项目都有一个使用 NuGet。

【讨论】:

  • 应该包含在源代码管理中吗?
  • @MattHickford 如果您使用 Package Restore 工作流程,您可以完全从源代码管理中省略 Packages 文件夹(包括此文件)。
  • 还有一件事。如果您使用 CI TeamCity >= 7.0,则有一个构建步骤 Nuget Install。该步骤需要该文件。至少在 7.0.3 中。我们不得不将 repositories.config 添加到 git。小心。
  • 我向解决方案中添加了一些项目,后来我从解决方案中删除了这些项目,但它没有清理我的 repositories.config 文件中的引用。在这种情况下,手动编辑此文件似乎是正确的做法。
  • 我一直在删除 TFS(本地工作区)中的 packages 文件夹,并提交了删除操作,并且我总是在 .tfignore 中忽略了 \*\packages,但是该死的 packages\repositories.config 不断被添加回 TFS .网上有几个关于这个的未回答的问题。你能在这里澄清预期的行为吗?谢谢!
【解决方案2】:

如果您遵循自动包还原工作流程,则需要在源存储库中包含 repositories.config 文件。

查看http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages,它特别提到了这一点。

【讨论】:

  • 是的,只是有点令人困惑,因为自从接受答案以来,NuGet 似乎已经有所发展。 @David Ebbo 说您可以完全省略 packages 文件夹(包括 repositories.config 文件),但您的链接特别指出:请务必在亮黄色框中签入您的 repositories.config 文件。然后它会提到其他 VCS 系统。所以我想知道接受的答案是指 TFS 中的纯“包还原工作流程”还是现在只是一个过时的响应。
  • 以上链接是关于基于 MSBuild 的包还原,而不是未提及 repositories.config 的Automatic package restore
  • 唉,您链接的页面现在执行 301 重定向到 /consume/package-restore/msbuild-integrated
  • 今天,对于使用 TFS 的 Nuget 2.8.6 和 VS 2013 的“自动包还原”工作流程,而不是 MSBuild,我发现我需要在源代码控制中使用 ./packages/repositories.config(但是不是任何包本身)。我还需要源代码控制中的 ./.nuget/nuget.config(并且必须从 TFS 和工作区中删除 nuget.targets 和 nuget.exe),并且每个 csproj 文件都必须删除 nuget 目标和包还原的所有痕迹。上次我检查 nuget 网页时,没有记录对 repositories.config 的需求。
【解决方案3】:

David Ebbo 的回答来自 2011 年,官方建议在版本之间不断变化。

这是我们在 2015 年所处的位置,使用 'Automatic Package Restore' (recommended) workflow 的 NuGet 2.7+

我是在解释,但基本上建议是:

从源代码管理中删除 packages/repositories.config。无论如何我们都会重新生成它。

...除非它以某种方式在您的机器上损坏。然后将它添加到源代码管理中。

此提示来自ignoring files in git 部分:

# Ignore NuGet Packages
*.nupkg
# Ignore the packages folder
**/packages/*

还有重要的部分:

[...]

# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config

【讨论】:

  • 每次我在 VS 中构建时,repositories.config 都会自动添加到源代码管理中。我怎样才能防止这种情况? .tfignore 文件似乎对此没有任何影响,也没有将 disableSourceControlIntegration 设置为 true。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-25
  • 1970-01-01
  • 2021-02-23
相关资源
最近更新 更多