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