Использование NuGet для внутренних и внешних зависимостей в TFS - PullRequest
15 голосов
/ 07 октября 2011

В настоящее время я смотрю на NuGet, чтобы решить мои проблемы с зависимостями в TFS, и я хотел бы разместить свой собственный сервер NuGet, который бы позаботился о внутренних зависимостях. Я также хочу использовать NuGet для обработки моих сторонних зависимостей. Я пытаюсь настроить автоматические сборки для нашей компании, и это один из препятствий, которые я пытаюсь преодолеть с помощью NuGet.

Итак, мой вопрос: как мне справиться с этим сценарием, в котором я должен получить свои зависимости с разных серверов?

Есть ли лучший способ обработки внутренних зависимостей? Как все остальные делают это?

Также, как примечание, я намерен использовать NuGet без фиксации пакетов в TFS. Я планировал использовать схему метода в этой статье:

http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html

Ответы [ 2 ]

11 голосов
/ 07 октября 2011

Рад, что вы рассматриваете сценарий no commit для пакетов NuGet в TFS.Вы можете взглянуть на мое сообщение в блоге на эту тему, где я объясняю концепцию.

РЕДАКТИРОВАТЬ (2012/06/13): NuGetPowerTools заменяется NuGet'sвстроенный пакет восстановления функциональности.Однако та же концепция изменения элемента PackageSources в nuget.targets по-прежнему применима.

Вам определенно стоит взглянуть на NuGetPowerTools Дэвида Фаулера.После установки этого пакета вы можете включить Enable-PackageRestore (новая установленная команда в консоли диспетчера пакетов), которая добавит ... Включение восстановления пакета добавит цели MSBuild в файлы вашего проекта.Эти цели MSBuild будут запускать nuget.exe на этапе предварительной сборки и извлекать все пакеты, необходимые для вашего проекта.Нет необходимости регистрировать пакеты NuGet в системе управления версиями, все, что вам нужно, - это packages.config и эти задачи msbuild.

Чтобы настроить несколько различных источников пакетов, вам необходимо установить некоторые параметры, которые будут использоваться этимиЗадачи MSBuild.Одним из них является PackageSources.Вы можете установить его, отредактировав файл NuGet.targets, который вы найдете в папке .nuget после включения восстановления пакета.

Что касается этих источников пакетов, вы можете настроить различные внутренниеNuGet галереи, или просто настроить различные общие сетевые ресурсы для использования.Это вопрос требований и предпочтений, поэтому вы можете выбирать.Все, что вам нужно сделать, это указать вашим целям msbuild использовать эти источники пакетов.Порядок, в котором вы их определяете, будет и порядком поиска пакетов.

Удачи!Xavier

1 голос
/ 15 августа 2013

Небольшое обновление принятого ответа и вопроса:

При использовании TFS в качестве сборочной машины без установленной на нем Visual Studio вы можете сделать следующее, чтобы сборочная машина автоматически использовала ваши пользовательские packageSources (более 1 в одном решении) без дальнейшей настройки источников пакетов в вашем решении.

  1. Создайте конфигурацию по умолчанию для машины, поместив NuGet.Config в корень (C: \ NuGet.Config), используя пример из: http://docs.nuget.org/docs/reference/nuget-config-file

  2. Прокомментируйте строку с: <add key="repositorypath" value="$\External\Packages" />

    В противном случае ваши пакеты будут расширены в C: \ $ \ External \ packages \ '. Когда комментарий закомментирован, конфиг становится цепочкой и будет использоваться правильный каталог.

  3. Сконфигурируйте нужные вам источники пакетов.

Для получения дополнительной информации о других параметрах (например, указание пользователя) см .: http://docs.nuget.org/docs/reference/nuget-config-file (внизу страницы).

...