TFS Build: проекты перестраиваются, даже если не изменились

Я пытаюсь автоматизировать сборку нашего основного проекта (C ++) через систему Team Build (TFS 2013).
Тем не менее, я вижу, что всегда создается несколько проектов, даже если не было никакого изменения кода, в то время как это не происходит при использовании VS2013 на моей машине для разработки. Это может вызвать некоторую головную боль, поскольку двоичные файлы всегда будут генерироваться и отправляться группе тестирования, даже если они не были изменены.

Включив «диагностическую» детализацию в вывод сборки, я вижу, что два проекта демонстрируют разное поведение.

В первом проекте журнал говорит, что все файлы .cpp перестроены, потому что файл .PCH был изменен (хотя никаких изменений не произошло). Я мог бы попытаться отключить PCH, но действительно мог бы избежать этого, если это возможно. Кроме того, отказ от первопричины ошибки оставит открытую дверь для ошибки, представляющей снова и снова.

Во втором проекте у нас есть шаг предварительной сборки, который генерирует файл .h. Однако шаги предварительной сборки не должны выполняться, если в коде не обнаружено изменений (https://msdn.microsoft.com/en-us/library/42x5kfw4.aspx), так и случилось на моей машине. На сборочном компьютере вместо этого выполняется этап предварительной сборки, генерируется .h, и это вызывает полную перестройку.

В настройках сборки команды у меня есть «Очистить рабочее пространство = ложь», «Очистить сборку = ложь». Я также попытался «/ p: IncrementalBuild = True» в настройках MSBuild, но это не решило проблему.

Примечание — я уже посмотрел на Visual Studio перестраивает неизмененные проекты а также VS2010 всегда перестраивает решение? перед публикацией.

2

Решение

Согласно вашей информации о project2, этап предварительной сборки выполняется на агенте сборки и не выполняется на локальном компьютере. Должно быть что-то другое с вашей локальной средой сборки и средой агента сборки. Это может быть основной причиной.

Предложите вам дважды проверить это и убедиться, что среда одинакова друг с другом. И попробуйте еще раз.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]