Проблемы с сервером сборки VS2015/TFS2013

TFS2013 update 5 с VS2015 Enterprise update 3 на компьютере разработчика, а также на сервере сборки (согласно Что требуется для выполнения модульных тестов на сервере сборки?).

Проект представляет собой стандартный фреймворк MVC5, в который пока практически не вносились изменения. Проект компилируется, но есть две основные проблемы.

Первый выпуск:

C:\Program Files (x86)\MSBuild\12.0\bin\amd64\Microsoft.Common.CurrentVersion.targets (1697): Found conflicts between different versions of the same dependent assembly. In Visual Studio, double-click this warning (or select it and press Enter) to fix the conflicts; otherwise, add the following binding redirects to the "runtime" node in the application configuration file: 

Затем следует ряд предлагаемых правок xml для узла <runtime>, подобных этому:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" culture="neutral" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
    </dependentAssembly>
</assemblyBinding>

Остальные 3 предложения здесь не повторяются, потому что они в основном одно и то же. Они адресуются соответственно Microsoft.Owin, WebGrease и Newtonsoft.Json. Но это сбивает с толку, потому что, когда я проверяю узел <runtime> в web.config, точные элементы xml, рекомендованные в предупреждающем сообщении, уже находятся в web.config для всех 4 элементов. Плюс предупреждение говорит о двойном щелчке или выборе его, но я не могу сделать ни то, ни другое.

Второй вопрос:

TF900547: The directory containing the assemblies for the Visual Studio Test Runner is not valid 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow'.

Я проверил на сервере сборки указанное местоположение, и, конечно же, запрошенное дерево папок не существует, дерево останавливается на (x86)\Microsoft Visual Studio 12.0\Common7\IDE\. Я проверил под (x86)\Microsoft Visual Studio 14.0 и (x86)\Microsoft Visual Studio 14.0\Common7\IDE\\CommonExtensions\Microsoft\TestWindow существует, и во всем этом месте присутствует значительная установка.

Я также просмотрел сборку VS2015 с TFS2013, которая предлагает определенный параметр MSBuild. Учитывая описанные выше проблемы с путями, кажется, что это имеет смысл, но прежде чем я попробую, я хотел получить подтверждение, что это имеет смысл для моего набора проблем и что конкретный параметр будет правильным. Кроме того, будет ли этот параметр MSBuild разрешать конфликты, упомянутые в первом выпуске?

Наконец, исследуя все это, я начал понимать, насколько массивной может быть конфигурация сервера сборки. Это немного пугает. Я был бы признателен за ссылки или книги, которые я мог бы начать изучать, чтобы лучше подготовиться к этому процессу.

Обновление: после простого аргумента MSBuild /tv:14.0 из TFS 2013, сборка .NET 4.6 / C# 6.0, первая проблема решена. Сборка теперь находит правильные сборки.

Все еще пытаюсь решить вторую проблему, связанную с Test Runner, но некоторые из сообщений, которые я читаю, предполагают, что эта конкретная комбинация VS / TFS необычна. Возможно, на сервере сборки требуются как VS2015, так и VS2013, а для тестирования требуется VS2013. Доложит.


person Alan    schedule 09.07.2017    source источник


Ответы (2)


Решением второй проблемы является установка Visual Studio 2013 или агентов для Microsoft Visual Studio 2013, если вы хотите продолжать использовать средство выполнения тестов Visual Studio.

Поскольку невозможно установить версию инструмента или путь к инструменту для действия «Запустить VS Test Runner», установка VS 2013 должна быть единственным способом избавиться от этой ошибки.


Это связано с тем, что тестовому агенту 2015 больше не нужен тестовый контроллер, поскольку оркестрация агента теперь управляется сервером (TFS2015 или VSTS).

Если вам нужен тестовый агент или тестовый контроллер для работы с TFS 2013, используйте агенты для Microsoft Visual Studio 2013 Update 5 и настройте тестовый контроллер.

Дополнительные сведения см. в этом руководстве: Установить и настроить агенты тестирования

Что касается конфигурации сервера сборки, вам лучше убедиться, что среда агента сборки (сервера сборки) такая же, как ваша локальная среда, это значительно уменьшит проблемы со сборкой tfs.

person PatrickLu-MSFT    schedule 10.07.2017
comment
Я просто пришел в SO, чтобы опубликовать то, что я подозревал, и здесь вы это подтвердили. Я установил VS2013 вместе с VS2015 на сервер сборки, и все работает нормально. С нетерпением жду обновления, как только появится возможность. Несмотря на то, что я, казалось, решил проблему, я ценю подтверждение того, что мое решение было правильным, а не каким-то разовым. Просто чтобы подтвердить, когда мы говорим same environment, какие именно детали мы имеем в виду? - person Alan; 10.07.2017
comment
Спасибо @Alan, всегда лучше, когда ты исправляешь это сам; как вы понимаете, как это работает!:) среда обычно означает IDE, например, версию VS, версию тестового агента, .NET Framework. В Team Sevices есть хост-агент для справки, вам не нужно иметь так много вещей на своем собственном агенте, просто список из них должен быть установлен на агенте сборки. visualstudio.com/en-us/docs/build/concepts/ агенты/хостинг - person PatrickLu-MSFT; 10.07.2017

Я бы порекомендовал изучить визуальную студию онлайн или обновить ее до последней версии TFS (2017), если это вообще возможно.

Самые последние изменения в TFS и конфигурации сборки намного превосходят то, что предлагалось ранее. Прошли времена XAML и рабочего процесса. Новый интерфейс действительно удобен, а инструменты управления выпусками, которые они предлагают, очень хороши.

Что касается конфигурации агента сборки, я бы порекомендовал настроить его в основном как клон вашей машины разработки: т.е. иметь те же инструменты, которые вы используете в своей среде разработки, установленные на агенте сборки.

Непрерывная интеграция и развертывание Microsoft и другие связанные страницы содержат ТОННУ хорошего материала и, надеюсь, ответит на некоторые из ваших вопросов

person Jeff Woodard    schedule 10.07.2017
comment
вот ссылка на документацию VS/TFS 2013 для вышеизложенного. В более новых материалах немного больше отполированности, но это может быть более актуально для того, что вы делаете, если вы заперты в 2013 году. msdn.microsoft.com/library/ms181709%28v=vs.120%29.aspx - person Jeff Woodard; 10.07.2017
comment
На самом деле я планирую перейти на последнюю комбинацию TFS/VS, просто сейчас я нахожусь в середине проекта в этой конкретной системе и хотел бы закончить его перед обновлением. Эти ссылки великолепны. Несмотря на то, что я разместил вопрос, я продолжал исследовать его и в какой-то момент действительно наткнулся на эти ссылки, но вы их задокументировали. - person Alan; 10.07.2017