TFS2013 update 5
, with VS2015 Enterprise update 3
on the dev PC and also the build server (per What is required for doing Unit Tests on a Build Server?).
Project is a standard MVC5 framework with next to no modifications made as of yet. The project compiles but there are 2 major issues.
The first issue:
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:
This is followed by a series of proposed xml edits for the <runtime>
node like this one:
<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>
The other 3 suggestions aren't repeated here because they're basically the same thing. They address respectively Microsoft.Owin
, WebGrease
and Newtonsoft.Json
. But this is confusing because when I check the <runtime>
node in web.config, the precise xml elements recommended in the warning message are already in web.config for all 4 items. Plus, the warning speaks about double-clicking or selecting it, but I can do neither.
The second issue:
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'.
I checked on the build server the location specified, and sure enough the folder tree requested doesn't exist, the tree stops at (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
. I checked under (x86)\Microsoft Visual Studio 14.0
and (x86)\Microsoft Visual Studio 14.0\Common7\IDE\\CommonExtensions\Microsoft\TestWindow
exists and there's a significant installation present in this entire location.
I also looked at VS2015 build with TFS2013 which suggests a specific MSBuild parameter. Given the path issues above, it seems to make sense, but before I try it, I wanted to get confirmation it makes sense for my set of issues and that the particular parameter would be correct. Plus, would that MSBuild parameter address the conflicts mentioned in the first issue?
Finally, in researching all this, I began to see how massive the build server configuration can be. It's a little intimidating. I would appreciate references or books that I could begin to study to become better educated for this process.
Update: Following the simple MSBuild argument /tv:14.0
from TFS 2013 building .NET 4.6 / C# 6.0, the first issue was resolved. The build now finds the proper assemblies.
Still looking to solve the 2nd issue regarding Test Runner, but some of the posts I'm reading are suggesting this particular VS/TFS combo is unusual. It may be that both VS2015 and VS2013 are required on the build server, VS2013 being required for the testing. Will report back.