Для меня отсутствовали зависимости, потому что у меня не было файлов *.nupkg
в папке packages
для всех пакетов, которые я использовал.
Это было довольно сложно отследить, потому чтовывод nuget pack
выглядел так, как будто он работал:
Found packages.config. Using packages listed as dependencies
Я использовал Visual Studio GitHub .gitignore
и прокомментировал только одну строку о «Восстановлении пакета» (потому чтоЯ хотел зафиксировать свои пакеты), но я должен был закомментировать два.Это должно выглядеть следующим образом:
# NuGet Packages
# *.nupkg
# The packages folder can be ignored because of Package Restore
# **/packages/*
Благодаря ответу Рика Мора за ссылку на рабочий элемент CodePlex 3097 , где написание файла объясняет, как папка packages
используется:
Поскольку packages.config
содержит только список пакетов и не содержит отношения зависимости между этими пакетами, nuget должен получить доступ к этим файлам пакета, чтобы получить информацию о зависимости.Вот почему ему нужно знать папку с пакетами.
Информация о зависимостях, на которую ссылается файл, находится внутри файлов *.nupkg
.После того как я изменил .gitignore
и зафиксировал все отсутствующие *.nupkg
файлы, мой сервер сборки TeamCity смог успешно создать мой пакет NuGet с правильными зависимостями.