NuGet-repositories.config


75

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

谢谢!


Answers:


64

该文件主要是NuGet实现的详细信息,不应直接处理(将来可能会消失或更改)。

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


44
是否应将其包含在源代码管理中?
Panic Panic 2012年

44
@MattHickford如果您使用“程序包还原”工作流,则可以从源代码管理(包括该文件)中完全省略“程序包”文件夹。
David Ebbo 2012年

2
还有一件事。如果您使用CI TeamCity> = 7.0,则有一个构建步骤Nuget Install。该步骤需要该文件。至少在7.0.3中。我们必须将repositories.config添加到git。小心。
塞尔吉奥·里科夫

1
我已经向解决方案中添加了一些项目,后来又从该解决方案中删除了该项目,但是它没有清除repositories.config文件中的引用。在这种情况下,手动编辑此文件似乎是正确的选择。
Funka

3
我一直在TFS(本地工作区)中删除packages文件夹,然后继续执行删除操作,而我一直都\*\packages忽略了.tfignore,但是该死的东西packages\repositories.config不断被添加回TFS中。网上有几个未解决的问题。您能在这里澄清预期的行为吗?谢谢!
杰森·克莱本

29

大卫·埃博(David Ebbo)的答案始于2011年,官方建议在各个版本之间不断变化。

这就是我们在2015年的定位,适用于具有“自动打包还原”(推荐)工作流程的NuGet 2.7+

我的意思是,但基本上建议是:

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

...除非它以某种方式在您的计算机上损坏。然后它添加到源代码控制。

此提示来自忽略git中文件的部分:

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

重要的部分:

[...]

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

2
每次我在VS中进行构建时,repositories.config都会自动添加到源代码管理中。我该如何预防?.tfignore文件似乎对此没有任何影响,也没有将disableSourceControlIntegration设置为true。
Timothy Schoonover


9

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

看一下http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages中明确提到这一点的地方。


3
是的,这有点令人困惑,因为自从可接受的答案以来,NuGet看起来已有所发展。@David Ebbo是的,您可以完全省略packages文件夹(包括repositories.config文件),但是您的链接明确指出:请务必在明亮的黄色框中检入repositories.config文件。然后介绍其他VCS系统。因此,我想知道是否接受的答案是指TFS中的纯“打包还原工作流”,还是现在只是过时的响应。
rism 2014年

11
上面的链接是关于基于MSBuild的包还原,而不是自动包装恢复没有提及repositories.config
马克斯·托罗

las,您链接的页面现在执行301重定向到/ consume / package-restore / msbuild-integrated
Chris F Carroll 2015年

今天,对于使用NFS 2.8.6和VS 2013以及使用TFS的Nubuild 2.8.6的“自动软件包还原”工作流,而不是MSBuild,我发现我需要源代码控制中的./packages/repositories.config(但不需要任何软件包本身)。我还需要源代码控制中的./.nuget/nuget.config(并且必须从TFS和工作空间中删除nuget.targets和nuget.exe),并且每个csproj文件都必须具有nuget目标的所有痕迹,并且程序包还原也必须删除。我上次检查nuget网页时未记录到对repositories.config的需要。
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.