Nuget не восстанавливает пакеты из системы контроля версий - PullRequest
0 голосов
/ 17 июня 2019

Мы переносим все наши проекты, чтобы использовать ссылки Nuget.Вместе с контролем версий (в нашем случае DevOps и Git) я заметил странное поведение менеджера пакетов nuget.

Когда мы регистрируем проекты с ссылками на nuget, другие коллеги (которые проверяют этот проект) получают ошибки ссылокв рамках проекта.Я проанализировал это и заметил, что в рабочей версии ветки dll пакетов nuget не включены.Для меня package.config выглядит нормально.

Мой вопрос: нужно ли проверять dll пакетов из nuget в систему управления версиями?В моем понимании, nuget должен проверить, загружены ли пакеты / сборки, и если нет, следует их повторно загрузить.

В visualstudio в диспетчере пакетов nuget -> «Разрешить NuGet загружать отсутствующие пакеты» и «Автоматически проверять пропущенные пакеты во время сборки в Visual Studio "проверяются оба варианта (на всех клиентах).

Я также проверил в проекте только с packages.config - без папки пакетов.Но ссылки не распознаются, как раньше / автозагрузка не происходила при загрузке / сборке проекта.

Ответы [ 2 ]

1 голос
/ 19 июня 2019

Я решил свою ошибку, переключившись с packages.config на packagereferences. В событии build / rebuild все библиотеки DLL теперь извлекаются из источников nuget, если они не существуют.

См. Этот пост для справки https://devblogs.microsoft.com/nuget/migrate-packages-config-to-package-reference/

0 голосов
/ 17 июня 2019

Нет, вам не нужно включать dll для пакетов в систему контроля версий.Packages.config - это все, что вам нужно, поскольку в нем содержится достаточно информации для извлечения всех необходимых библиотек, необходимых для запуска вашего кода.

В Devops вам необходимо добавить задачу восстановления nuget к вашей сборке.Это уничтожит все необходимые библиотеки.

Использование менеджера пакетов, такого как nuget (или npm и т. Д.), Позволяет вам сохранять только ваш код в системе контроля версий.Это также предотвращает случаи «это работает на моей машине», когда Developer1 имеет специфическую локально ссылающуюся dll, а Developer2 - нет.

Если для отдельных разработчиков возникают ошибки ссылок, возможно, кто-то зарегистрировал ссылку на локальный файл, а не на пакет nuget.

...