TFS 2017 - Build Server does not build Visual Studio 2017 - tfs

After upgrade of Visual Studio 2017 last week on my build server, the MS Build 15.0 is not in use anymore. So whenever I try to compile visual studio 2017 projects which use new feature they will fail.
The Warning in build log is:
Visual Studio version '15.0' not found. Looking for the latest
version.
And the error is:
something.cs(542,41): Error CS1525: Invalid expression term 'int'
Which is because build server is using MS build 14.0 I guess.
So far I have
1- Uninstall and Reinstalled the Visual Studio 2017 on the build server.
2- Installed "Visual Studio Build Tools 2017".
And nothing works.
I have read some articles and apparently there are missing registry values but I don't know how to create them.
Appreciate your helps on this topic.
I am using TFS 2017 SP1 (On premises) and Visual Studio 2017 latest updates.

This may due to the VS is installed after the build agent configured. Then reregister the build agent with TFS, since the system capabilities are only discovered when the agent is first configured -- any changes made after that are not captured.
More ways please refer this similar question: No agent could be found with the following capabilities: msbuild, visualstudio, vstest?
Or install the latest version of the agent for now, which appears to be capable of detecting VS2017.
Also remember to select VS2017 in Visual Studio Version picklist of Visual Studio Build task.

I have resolved this issue by upgrading my TFS from TFS 2017 SP1 to
TFS 2017 SP2.
Thanks to #Patrick-MSFT and #Martin Ullrich for your help.

Related

Using VS2019 with TFS2018 vnext build system without server side work around

I recently ran into a problem trying to use VS2019 with the TFS2018 vnext build system.
You cannot select VS2019 in the "Visual Studio Build" step, and selecting "Latest" does not use Visual Studio 2019.
On a test server, upgrading the server software from TFS 2018.3 to Azure Devops Server 2019 fixes the issue. Is there a simple work-around that would allow Visual Studio 2019 to be used without affecting the TFS server in a questionable way.
This question extends the question here:
Using VS2019 with TFS2018 vnext build system
Instead of using the Visual Studio Build step, I tried switching to the MSBuild Build step and specified the path to msbuild.exe as follows:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin
The build ran successfully and used Visual Studio 2019.

Where in the Visual Studio installer do I find the BuildTools component?

In which Workload of the Visual Studio 2017 Community 15.9 installation would I find the VS2017 BuildTools component?
I am looking at the workloads in the installer options and there seems not to be any workload that has such a thing.
I even searched in the component in the Individual Components tab also but couldn't find anything matching the exact string.
The reason I am looking for it is that when I try to build the source code for ASP.NET MVC v5.2.6, I get the error message as follows.
> build
Could not find MSBuild.exe. Please install the VS2017
BuildTools component or a workload that includes it.
*** BUILD FAILED **
I had written to the ASP.NET MVC team earlier about this message before I had installed Visual Studio 2017. I had had just Visual Studio 2019 then and they asked that I install Visual Studio 2017.
I already have MS Build at various locations. I had multiple versions of MSBuild even before having installed VS 2017.
Build Tools for Visual Studio 2017 is still available as an online installer. You can get the current version here: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15.

Team Foundation Server 2018 Build agent Capabilities VS 2019

We use Team Foundation Server 2018. Since our upgrade to Visual studio 2019 I have been trying to add this capability to TFS 2018, without any success.
TFS version: 2018 (16.122.27102.1)
I have already tried to reconfigure the Agent, or even add a new one.
Visual studio 2019 is installed on the TFS server + has the same checks as the 2017.
Deleting VS 2017 on the server doesn't help either, no capabilities found then.
Are there any tips/tricks that I need to perform to get TFS working with VS2019 build?
Team Foundation Server 2018 Build agent Capabilities VS 2019
The Visual Studio is generally compatible with newer versions of Team Foundation Server.
You can see the details specified by Microsoft here: Requirements and compatibility.
Only the latest version has "full" compatibility with the latest Team
Foundation Server, because this will be the only client that contains
components that can interface with new features for that release, and
will also be the only client from which you can perform certain
administrative tasks such as creating new team projects.
So, the Team Foundation Server 2018 should be a high level of support VS 2019 not full support.
Team Foundation Server 2018 Agent could not recognize vs2019 and msbuild 16.0 capabilities. Then you could not select the Visual Studio 2019 in the Visual Studio version of VS build task. Because TFS doesn't know how to locate future VS versions
To resolve this issue, you can use MSBuild task instead of Visual Studio Build Step, then specify the location of MSBuild 16.0, it should be:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe
Hope this helps.

TFS Build Failure - Unable to find Visual Studio 2017

After updating to TFS 2017 Update 2 RC1, my builds are failing because Visual Studio 2017 (MSBuild 15.0) is not found. I am using the 'Visual Studio Build' task with 'Latest' selected as the Visual Studio version.
I have reinstalled Visual Studio Build Tools 2017.
I have repaired my TFS installation.
I have reinstalled my Build Agent.
I have verified that my Build Agent has Visual Studio 2017 and MSBuild 15.0
capabilities.
The only way I am able to get a successful build is to replace my 'Visual Studio Build' tasks with 'MSBuild', and manually direct to the MSBuild executable. I don't find this acceptable, I have too many Build configurations that would need to be changed. And when the next version of MSBuild comes out, I have to manually update them all.
Build Agent Capabilities:
MSBuild
Visual Studio
Suggest you directly select VS2017 instead of latest in the VS version option, then trigger the build again.
To narrow down the issue, you could try below ways:
Create a new build definition with the same settings to build the
project
Use the build definition to build another Visual Studio 2017 project such as a new created one
Enable TFS Build debug logging by adding a variable named
system.debug and setting its value to 'true'. This will enable full debug logging to correct more info.

TFS 2013 Build Service connect to TFS2012 server

I have TFS2012 Update 3 server. We have started new VS 2013 project. I need to prepare build server and service. My initial thought is to install Vs 2013 together with TFS2013 build service.
After installation TFS2013 and registration to TFS collection I got below issue:
The register command is not supported for Team Foundation Service [our_tfs_url] because the server is not compatible.
Please advice any solution how to create builds for VS 2013 projects that are stored in TFS 2012.
Update 1:
1) I installed TFS 2012 build service and redirect msbuild ( toolpath) in build template to use VS 2013 msbuild
2) I am able now to build project with a test
3) There are still issue with Code Coverage, that finish with warning: Install visual studio. It seems for me that CC used still VS 2012. Is any way to redirect CC to VS 2013?
Below solution helps me build on VS 2013 build machine with TFS 2012 build service and generate code coverage.
TFS 2012 buid service runs tests from 11.0 location, to replace CommonExtensions in folder
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions
with Vs 2013 assemblies from
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions
fix that issue and now I can see code coverage per build.
thanks MS to provide workaround on that issue with Code coverage.

Resources