TeamCity 19.1 and DotCover 19.1.1 agent requirement has faulty regex for .NET 4.6
Having upgraded to 2019.1 We found that none of our continuous builds had matching agents any more.
Through painful trial and error I isolated this down to the NUnit test runner step (we use NUnit 3, specifically 3.9.0) with the suboption for .NET Coverage for which we use the JetBrains dotCover tool. Enabling this forces the following agent requirement:
Exists=>(DotNetFramework4\.(6\.(?!0)|[7-9]|[\d]{2,})[\d\.]*_.+)
The problem with this regex is it is saying "4.6.0*" is not ok - but on our build server we have 4.6.01055 which fails that regex.
The agent has various framework parameters identified, none of which can match such as:
DotNetFramework4.6.01055_x64_Path
The only workaround is to disable code coverage on our unit tests - at least this makes the (impossible) agent requirement go away so our builds can run.
This was never an issue for us for the last couple of years of TeamCity versions (which I regularly upgrade) until this release version.
Please sign in to leave a comment.
Unfortunately dotCover and others R# based tool require .net 4.6.1 or higher. See this post https://blog.jetbrains.com/dotnet/2018/03/21/resharper-2018-2-will-require-net-framework-4-6-1/ for details.
As workaround you could install some previous version of dotCover (via Administration\Tools) for instance 2018.1 and use it in build steps.
Thanks very much for the reply. That is a rather unfortunate and subtle requirement change I wish TeamCity had been able to warn us about before the upgrade. I think the path of least resistance will be to install a later .NET runtime on the build server then, thanks.