Проблема с пакетами NuGet при сборке в TeamCity

У меня есть решение, созданное в Visual Studio 2015 с использованием пакетов NuGet.

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

Но при компиляции решения в TeamCity (которое вызывает MSBuild для сборки) - не получается:

Ошибка: тип или имя пространства имен «someName» не может быть найдено (вам не хватает директивы или ссылки на сборку?), где «someName» определено в сборке, которая будет установлена ​​NuGet

В TeamCity определены два отдельных шага:

  1. Установка NuGet — было подтверждено, что пакеты, установленные в агенте сборки
  2. Построить себя

Есть ли параметр MSBuild для проверки?

Что может быть причиной проблемы?


person lm.    schedule 22.06.2017    source источник
comment
Какие параметры передаются в msbuild? Я считаю, что пакеты nuget связаны с решением, а не с проектом   -  person Jonny Paton    schedule 22.06.2017
comment
Спасибо за ответ . Большинство пакетов были добавлены через пакет управления решениями. Но в любом случае - как можно проверить в файле csproj, как связаны пакеты?   -  person lm.    schedule 22.06.2017
comment
Вот параметры: И вот параметры ‹target name=compile› ‹exec program=${msbuild.exe}› ‹arg value=${solution.file}› ‹arg value=/nlogo› ‹arg value=/t :Rebuild› ‹arg value=/m:$environmnet::get-variable('NUMBER_OF_PROCESSORS')› ‹arg value=/p:Configuration=${build.configuration}› ‹arg value=/p:Platform=${ quote}${build.platform}{quote}› ‹arg value=/p:OutDir={bin.output}› ‹arg value=/p:CreatePackgage)nPublish=true› ‹arg value=/p:BuildInParallel=$ {quote}true${quote}› ‹/target›   -  person lm.    schedule 22.06.2017


Ответы (1)


Ошибка: тип или имя пространства имен «someName» не может быть найдено (вам не хватает директивы или ссылки на сборку?), где «someName» определено в сборке, которая будет установлена ​​Nuget

Согласно журналу ошибок, вам нужно добавить шаг в процесс сборки, чтобы восстановить все пакеты NuGet. Вы можете обратиться к документу Пакет NuGet Восстановите с помощью TeamCity для более подробной информации.

введите здесь описание изображения

person Leo Liu-MSFT    schedule 23.06.2017
comment
Может быть, дать резюме здесь? Например, суть и/или любые неочевидные шаги. - person Peter Mortensen; 19.06.2021