This guide assumes there is a Build Configuration (e.g. named "Tests + dotCover") building a .NET project and running tests with dotCover enabled (one or several build steps): 

Integrating with chained build

1. Create another Build Configuration (e.g. named "Send to SonarQube") and add the following 2 dependencies on initial configuration ("Tests + dotCover"):

a) A snapshot dependency

b) An artifact dependency for ".teamcity/.NETCoverage/dotCover.dcvr" file and getting artifacts from "Build from the same chain".

Note: since TeamCity version 2019.1 dotCover.dcvr is no longer a hidden artifact that publishes by default. It is created in build temp folder (\..\agentTmp\dotNetCoverageResults\dotCover.dcvr) and is now removed when the build finishes. To make it publish, explicitly specify the .dcvr file in Build artifacts paths.

2. In the new configuration ("Send to SonarQube") add a Command Line step with the following script: 

%teamcity.dotCover.home%\dotCover.exe report /ReportType=HTML /Source="dotCover.dcvr" /Output="dotCover.html"

3. Add SonarQube Runner to the new configuration and add additional command line argument with "-Dsonar.cs.dotcover.reportsPaths=dotCover.html"

Integrating with merging reports

After the last build step with enabled dotCover, add a new step to merge all the collected coverage into a single XML in a well-known place as described here.