Не удается выполнить сборку с использованием службы TF, сборка локально выполняется нормально.

Я пытаюсь заставить проект работать со сборкой непрерывной интеграции. В настоящее время он состоит из библиотеки dll, приложения .net 4.5 и приложения WP8. Я использую службу Team Foundation с GIT в качестве системы управления версиями.

Мне удалось настроить конфигурацию сборки, но она не работает со следующим сообщением:

Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException)
Exception Stack Trace:    at System.Activities.Statements.Throw.Execute(CodeActivityContext context)
   at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
   at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

Это ЕДИНСТВЕННОЕ исключение во всем решении, хотя есть 10 предупреждений. Кроме того, я запустил сборку с детализацией для диагностики, и здесь это результат.

Опять же, я не вижу никаких проблем с этой сборкой, только загадочное сообщение «Проект сборки готов.... --FAILED». Локально проект можно собрать и перестроить без каких-либо проблем. Кто-нибудь знает, что может быть причиной этой проблемы?

Изменить: методом проб и ошибок я сузил проблему до наличия в моем решении приложения для Windows Phone 8. Если я исключаю этот проект, решение строится нормально. Если он включен, я понимаю проблему. Должен ли я использовать отдельное определение сборки для каждого проекта, а не для самого решения? Проекты Windows phone 8 сами по себе отлично строятся...


person steveg89    schedule 10.08.2013    source источник


Ответы (1)


Ошибка, которую вы получаете, возникает в шаблоне сборки, который использует ваше определение сборки. Шаблоны сборки — это файлы рабочего процесса Windows, которые направляют сборку TFS в процессе выполнения данной сборки. Причина, по которой ваш проект создается локально, заключается в том, что Visual Studio не использует этот шаблон сборки, поскольку шаблоны сборки выполняются только на сервере в рамках сборки TFS.

Я осмелюсь сказать, что кто-то настроил шаблон сборки, который использует ваша сборка, и эта настройка не работает. Судя по ошибке, похоже, что это происходит во время выполнения CodeActivity, которая теперь устарела (хотя на самом деле проблема не в том, что она устарела). Однако пользовательский код в этом CodeActivity, вероятно, не работает.

Предполагая, что ваш процесс сборки не требует каких-либо конкретных настроек, предоставляемых неудачным шаблоном сборки, я бы просто выбрал другой или создал новый. Это можно сделать на вкладке «Процесс» при редактировании определения сборки.

Надеюсь это поможет!

person Chris Anderson    schedule 12.08.2013
comment
Я попробую. Это совершенно чистый шаблон, за исключением нескольких флагов. Я изменил процессор сборки на x86, чтобы Windows Phone собирался правильно, а затем указал сборку Release for Any CPU. Я попробую это, когда вернусь домой. Если это не сработает, могу ли я опубликовать что-нибудь, что поможет вам сузить круг? Фото установки сборки можно? - person steveg89; 12.08.2013
comment
Есть ли у вас какие-либо другие сборки, успешно работающие на этом сервере сборки? Можете ли вы попробовать создать простое консольное приложение и заставить сервер сборки построить его, используя тот же шаблон сборки? Это покажет, является ли проблема шаблоном сборки. Вы создаете приложение WP8 — установлен ли SDK на сервере сборки? Кроме того, какую версию TFS вы используете? Если TFS2010, вам понадобится .NET Framework 4.5, установленный на сервере сборки. - person Chris Anderson; 13.08.2013
comment
Все это использует службу Team Foundation, поэтому я вообще не контролирую сервер сборки. - person steveg89; 13.08.2013
comment
Ах хорошо. Ну, тогда я ожидаю, что тогда все это будет установлено. Можете ли вы опубликовать предупреждения, которые вы получаете, пожалуйста? - person Chris Anderson; 13.08.2013
comment
Я на работе, но они для присвоения переменной самой себе. Это определенно вещи, которые можно удалить, но я не думаю, что это будет необходимо... Таких предупреждений 10. - person steveg89; 13.08.2013
comment
Хмм хорошо. Я бы попробовал удалить части вашей сборки, чтобы посмотреть, сможете ли вы сузить проблему до конкретного строящегося проекта. Например, просто попробуйте заставить его собрать вашу DLL. Если это не сработает, создайте консольное приложение, как я уже упоминал, и заставьте его построить его. В основном удаляйте большинство вещей, чтобы они работали (надеюсь), затем постепенно добавляйте вещи обратно, пока они не перестанут работать, тем самым сужая проблему. - person Chris Anderson; 13.08.2013
comment
Я поработаю над этим сегодня вечером и обновлю свой вопрос результатами. Спасибо, что заглянули в это - person steveg89; 13.08.2013
comment
Ладно, боюсь, я должен признать, что совершенно запутался в этом вопросе. Тот факт, что вы можете создать файл проекта WP8 сам по себе, но не в решении с другими проектами, сбивает с толку. По крайней мере, проблема была выявлена ​​сейчас. Я бы сказал, что это ошибка TFS, учитывая предоставленную вами информацию - я не могу придумать никакой другой рациональной причины такого поведения. Если можно использовать отдельные определения сборки для сборки ваших проектов, то я думаю, что это решение на данный момент. Создайте отдельные решения для сервера сборки и оставьте текущее решение для использования в среде разработки. - person Chris Anderson; 14.08.2013
comment
Кроме того, сообщите об этом как об ошибке на Connect и посмотрите, что они скажут. - person Chris Anderson; 14.08.2013
comment
Я знаю, что мы не пришли к реальному решению, но я собираюсь дать вам флаг ответа, поскольку кто-то другой может выполнить ваши шаги, чтобы исправить свою проблему. - person steveg89; 16.10.2013
comment
Спасибо, Стив :). Сожалеем, что ваша проблема до сих пор не решена, но мы надеемся, что проблема будет решена в ближайшем будущем. - person Chris Anderson; 16.10.2013