MSBuild сообщает, что сборка не удалась, а журнал сообщает, что сборка выполнена успешно - PullRequest
0 голосов
/ 22 июня 2010

У меня проблемы со сценарием MSBuild, так как он выполняется правильно, но в TFS Build Explorer он сообщает о сбое (красный значок X). Тем не менее, несмотря на то, что все отчеты о сборках не были выполнены, при проверке журналов они выглядят нормально и заканчиваются:


Закончено создание цели "EndToEndIteration" в проекте "TFSBuild.proj". Готовый строительный проект "C: \ Builds \ EDRM Development \ CI_Development_IW471_UserGroup_CG3 \ BuildType \ TFSBuild.proj" (цель (и) EndToEndIteration).

Сборка выполнена успешно. 0 Предупреждение (я) 0 Ошибка (и)


Что именно использует Build Explorer для определения успеха сценария сборки?

Сам скрипт использует пакет расширений MSBuild (из CodePlex) для создания решения, содержащего более 40 проектов VB6. Чтобы он мог быть запущен при групповой сборке, я реализовал целевой EndToEndIteration, с целью сборки как 'DependsOnTargets'. EndToEndIteration - единственная из целей построения команды, которую я реализовал в сценарии (она кажется единственной обязательной?).

Когда я запускаю скрипт из командной строки, он также сообщает об успехе, так что только Build Explorer указывает на ошибку.

Есть идеи, почему это происходит?

Ответы [ 2 ]

0 голосов
/ 24 июня 2010

Спасибо за ответ. Все задания заканчивались успешно.

Я только что нашел решение, поэтому добавлю его сюда.

Поскольку я строю решение VB6 (включающее более 40 проектов), я создал чистый сценарий msbuild, который изначально запускался из командной строки. Чтобы использовать его с групповой сборкой для CI, я добавил целевой «EndToEndIорт», поскольку это единственная обязательная цель для нового сценария msbuild в групповой сборке (т. Е. Сценарий, не созданный с помощью мастера создания сценариев сценариев TFS). Это приводит к проблеме, описанной выше, когда даже если скрипт выполняется отлично, сборщик проводов по-прежнему сообщает об ошибке.

Решением является создание сценария сборки с использованием мастера TFS (для любого файла .Net .sln - это не имеет значения - ссылка на него будет удалена). Затем возьмите копию этого файла tfsbuild.proj и извлеките детали, относящиеся к проекту .Net, и вставьте их в цели msbuild. Затем внедрите цель "CoreCompile", чтобы инициировать цели, которые вы вставили.

0 голосов
/ 22 июня 2010

Успешность сборки определяется ВСЕМИ задачами, завершившимися шаблоном успеха (в случае неудачи его можно рассматривать как частично успешную сборку, но значок все равно останется значком отказа с небольшим зеленым значком успеха:)

Попробуйте взглянуть на журналы сборки, потому что кажется, что некоторые шаги до или после запуска не выполняются (невозможно скопировать sth и т. Д.).Самый простой способ - определить, в чем проблема, - запланировать сборку из Visual Studio с максимальным уровнем детализации для каждой задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...