Вытягивание зависимостей nuget при сборке

Я использую сервисы сборки myget с веб-хуком github для сборки пакетов nuget при каждом нажатии на github.

Репозиторий github находится на уровне проекта, поэтому папка пакетов (которая находится на уровне sln) не перемещается.

Так что моя сборка не удалась, потому что у нее нет зависимостей. Какова лучшая практика здесь? Я хотел бы получить зависимости с nuget во время сборки. Возможно ли это с myget и если да, то как я могу это настроить. Я смотрел на восстановление пакета, но это также создает конфигурацию на уровне sln, поэтому я не думаю, что это может мне помочь.

1 ответ

Решение

Вы можете подключиться к MyGet Build Services, используя собственный скрипт сборки, как описано в документации: http://docs.myget.org/docs/reference/build-services

Затем вы можете использовать NuGet для восстановления пакетов самостоятельно: http://docs.myget.org/docs/how-to/make-use-of-nuget-within-your-build-scripts

Настоящая проблема заключается в том, что ваш проект ссылается на библиотеки, которые находятся за пределами корневого каталога вашего репозитория. Я бы посоветовал вам соблюдать соглашение по умолчанию о наличии следующей структуры каталогов в вашем хранилище:

$(SolutionDir) = repository root
    \ProjectDir

Вы можете либо включить решение для конкретного проекта в каталог решений (и иметь проект в своем собственном подкаталоге), либо использовать сценарий сборки в каталоге решений, который восстанавливает пакеты в папке $(SolutionDir)\Packages (вы можете создать его на лету, пока он находится внутри каталога оформления заказа, и вызвать nuget.exe install в ваших пакетах.config).

Другие вопросы по тегам