NuGet - repositories.config


75

Запитання для початківців NuGet -
я бачив, repositories.configяк їх додавали до папки NuGet пакети.
Хто-небудь може підказати мені, яка мета цього файлу?

Дякую!


Відповіді:


64

Це файл, який здебільшого є деталлю реалізації NuGet, і з ним не слід безпосередньо працювати (він може зникнути або змінитися в майбутньому).

Але для довідки він містить список шляхів, які вказують на всі пакети.config у рішенні. Зазвичай для кожного проекту використовується один, який використовує NuGet.


44
Чи слід це включати до контролю джерел?
Colonel Panic

44
@MattHickford Якщо ви використовуєте робочий процес «Відновлення пакетів», ви можете повністю пропустити папку «Пакети» з елемента керування джерелом (включаючи цей файл).
Девід Еббо,

2
Іще одне. Якщо ви використовуєте CI TeamCity> = 7.0, існує крок збірки Nuget Install. І для цього кроку потрібен цей файл. Принаймні в 7.0.3. Нам довелося додати repositories.config до git. Будь обережний.
Серхіо Риков

1
Я додав кілька проектів до рішення, яке згодом видалив із рішення, і воно не очистило посилання у моєму файлі repositories.config. Редагування цього файлу вручну здавалося правильним рішенням у цьому випадку.
Funka

3
Я продовжую видаляти папку пакетів у TFS (локальна робоча область), здійснюючи це видалення, і я завжди \*\packagesігнорував .tfignore, але, блін, packages\repositories.configпостійно додається назад до TFS. Є декілька запитань без відповіді щодо цього в мережі. Ви можете пояснити очікувану поведінку тут? Дякую!
Джейсон Клебан

29

Відповідь Девіда Еббо - з 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 стверджує, що ви можете повністю опустити папку пакети (включаючи файл repositories.config), але у вашому посиланні зазначено: Обов’язково перевірте свій файл repositories.config у яскраво-жовтому полі. Далі йдеться про згадку про інші системи VCS. Тому мені цікаво, чи прийнята відповідь мала на увазі чистий "Робочий процес відновлення пакунків" у TFS, чи тепер це просто застаріла відповідь.
rism

11
Вищезазначене посилання стосується відновлення пакета на основі MSBuild, а не автоматичного відновлення пакета, в якому не згадується repositories.config
Макс Торо

На жаль, сторінка, на яку ви зв’язали, зараз робить переспрямування 301 на / споживання / відновлення пакета / вбудований msbuild
Кріс Ф Керролл

Сьогодні для робочого процесу `` автоматичного відновлення пакунків '', а не MSBuild, з Nuget 2.8.6 та VS 2013, що використовують TFS, я вважаю, що мені потрібно ./packages/repositories.config у керуванні джерелом (але не будь-який із самих пакетів). Мені також потрібно ./.nuget/nuget.config у керуванні джерелом (а nuget.targets та nuget.exe повинні бути видалені з TFS та робочої області), і кожен файл csproj повинен мати усі сліди цілі nuget та відновлення пакета. Потреба в repositories.config була недокументована під час останнього перевірки веб-сторінки nuget.
subsci
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.