Nuget и управление исходным кодом Team Foundation

В моем решении установлены различные пакеты Nuget. Некоторые в моем доменном проекте, а некоторые в моем проекте MVC Front End.

Это все работает вполне счастливо. Однако, если вы получите новый проект из системы управления версиями, я увижу, что у меня есть все пакеты в папке пакетов. Однако все они, кажется, имеют восклицательный знак после них в ссылках на проекты.

Если я использую команду nuget nuget install .\ProjectFolder\Packages.config, кажется, что пакеты снова устанавливаются, но ссылки по-прежнему не появляются. Я должен вручную установить их, используя ссылки на управление nuget, и установить их по отдельности. Что немного хлопотно для новых разработчиков, начинающих проекты.

Кажется немного странным? Что-то не так или это нормально? Разве Nuget/VS2010 не должен знать, что все пакеты существуют, и быть счастливым, поскольку все пакеты находятся в локальной файловой системе из системы управления версиями (я знаю, что есть споры о том, чтобы оставить их там, но давайте оставим это в стороне)

Спасибо

Грэм


person GraemeMiller    schedule 28.10.2011    source источник


Ответы (3)


Обновлено 28 июня 2014 г.

Вы можете подумать о переустановке ваших пакетов. См. эту тему: Как заставить NuGet установить/обновить все пакеты в packages.config?

Оставив устаревший ответ ниже для истории, но обратите внимание, что восстановление пакета на основе MSBuild в настоящее время считается плохой практикой (дополнительная информация: http://www.xavierdecoster.com/migrate-away-from-msbuild-наоснове-nuget-package-restore)

Устаревший ответ ниже:

Не прямой ответ на ваш вопрос, но возможно ценное предложение при использовании NuGet с TFS. Вы можете рассмотреть стратегию отсутствия фиксации для пакетов NuGet и использовать команду NuGetPowerTools Enable-PackageRestore.

Подробнее здесь:

person Xavier Decoster    schedule 29.10.2011
comment
+1. Да, я придерживался мнения, что в долгосрочной перспективе мне не нужны двоичные файлы в моей системе управления версиями. Это отличная подборка ссылок. Думаю, я проверю свой собственный ответ, так как это была скорее техническая ошибка. Однако я считаю, что этот ответ, вероятно, является правильным способом работы с пакетами TFS + Nuget. - person GraemeMiller; 29.10.2011
comment
Я думаю, что этот ответ устарел и нуждается в пересмотре. Первые две ссылки указывают на совет Nuget.org, в котором говорится о включении восстановления пакетов, но в своем собственном блоге вы возражаете против этого. Могу ли я предложить, что это отредактировано? - person Quango; 28.06.2014
comment
@Quango спасибо, предоставил альтернативный ответ, так как мой старый ответ действительно устарел! - person Xavier Decoster; 28.06.2014

Установите пакет NuGetPowerTools, а затем Enable-PackageRestore из консоли диспетчера пакетов. Это должно исправить это.

Это короткая версия ответа @Xavier :).

person Ryan Cromwell    schedule 01.11.2011

Я предполагаю, что это не нормально. Я удалил всю папку пакетов. Повторно добавил все пакеты в свое решение, а затем зафиксировал все изменения.

Теперь это работает, если я повторно получу сайт из системы управления версиями. Возможно что-то испортилось. Первоначально проект был запущен до того, как я использовал систему управления версиями и nuget. Возможно, какая-то проблема с начальной настройкой.

Спасибо

Грэм

person GraemeMiller    schedule 28.10.2011