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. Доложит.