Я создаю проект в TeamCity с включенным восстановлением пакета NuGet.Шаг этапа установки TeamCity NuGet
У меня есть два шага сборки:
- NuGet инсталлятор
- MSBuild
Один из проектов имеют log4net-пакет с официальным подачи установленным. (Но не в зацикливаться на каком пакете)
Моя проблема когда TeamCity запускает первый шаг, он терпит неудачу на этапе NuGet-инсталлятор с сообщением: Невозможно найти версию «2.0. 3 'пакета' log4net '.
Так после того, как делать все возможное, чтобы найти какие-либо ошибки в решении, я стараюсь:
- Отключить шаг NuGet Installer
- Выполнить мой билд -
, который, очевидно, терпит неудачу, потому что не имеет пакетов(смотри ниже) - Включить шаг NuGet Installer
- ReRun построить
[Изменить] Что касается 3-го шага, MSBuild в идеале, как указывает Джон Х., сможет перестроить пакеты, поэтому мне не понадобится шаг установщика NuGet. Ошибка, когда я пытаюсь построить решение без шага установки nuget, имеет какое-то отношение к пакету OctoPack, который я установил:
OctoPack не может быть запущен, потому что пакеты NuGet были восстановлены до запуска сборки, а цели файл был недоступен, когда сборка началась. Пожалуйста, снова создайте проект, чтобы включить эти пакеты в сборку. Вам также может потребоваться убедиться, что ваш сервер сборки не удаляет пакеты до каждой сборки.
Тогда это преуспевает. Почему?
У кого-нибудь есть представление о моей проблеме?
Некоторые более фона:
Я предполагаю, что это что-то делать с пакетом осьминога развертывания. У меня есть плагин octopus deploy, установленный на сервере teamcity, и я установил флажок «Выполнить OctoPack» на шаге MSBuild.
Я попытался удалить пакет octopack и переустановить без каких-либо успехов.
Может быть, восстановление NuGet-пакета на шаге MSBuild в сочетании с плагином осьминога вызывает мои проблемы?
[Частичное разрешение] Я все еще не уверен, почему я получил ошибку в лог4net-пакете. Я запускал установщик NuGet в качестве первого шага в моей автоматической сборке, которая, в конце концов, оказалась правильной вещью, связанной с природой сборки.
Я признаю, что я не (всегда) читаю «что нового», когда пакет обновляется. При обновлении Octopack с 2.0.26 - 3.0.19 одно из изменений заключается в том, что вам больше не нужно проверять папку .octopack. Так что я мог бы действительно понять, почему сборка не может найти Мишени-файл, когда он был установлен в
Теперь я:.
- повышен до Octopack 3
- удалили .octopack папку из контроль версий
- (снова) включен этап NuGet установки в TeamCity
и сборка работает нормально.
Спасибо за помощь! Я лучше образованный человек сейчас :)
[Удалено] неактуальной информации
Является ли пункт «установщика NuGet» явно для восстановления пакетов для шага MSBuild? Правильно настроенный шаг MSBuild должен иметь возможность восстанавливать пакеты без какой-либо помощи. Выполняет ли протокол MSBuild любые ошибки NuGet? –
Привет, Джон, спасибо, что указали это. Когда я отключу шаг восстановления пакета и запускаю сборку, которая не работает, ошибка фактически связана с другим пакетом OctoPack. «OctoPack не может быть запущен, потому что пакеты NuGet были восстановлены до запуска сборки, а файл целей был недоступен при запуске сборки. Пожалуйста, снова создайте проект, чтобы включить эти пакеты в сборку. Возможно, вам также необходимо убедиться, что ваша сборка сервер не удаляет пакеты перед каждой сборкой ». Я смотрю на это .. – HaraldV
Я получаю то же самое здесь, используя ContinuiCI, который создает новую копию исходной папки для каждой сборки. Если я прочитаю это право, это означает, что пакеты будут восстановлены для каждой сборки? –