diff --git a/tools/run_tests/build_csharp.sh b/tools/run_tests/build_csharp.sh
index 6737d88b273fa577083d535442bc70a53ebca3c5..55643ff92417f51d30d98893bfc7bcd9e2bb6074 100755
--- a/tools/run_tests/build_csharp.sh
+++ b/tools/run_tests/build_csharp.sh
@@ -30,13 +30,6 @@
 
 set -ex
 
-if [ "$CONFIG" = "dbg" ]
-then
-  MSBUILD_CONFIG="Debug"
-else
-  MSBUILD_CONFIG="Release"
-fi
-
 cd $(dirname $0)/../../src/csharp
 
 xbuild /p:Configuration=$MSBUILD_CONFIG Grpc.sln
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 3803e8c0448c214cce5bcdea66301d9d7c8257e2..8e8a05ed08d1ca8983de2d3f34740c0eac85e213 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -526,7 +526,7 @@ _LANGUAGES = {
 _WINDOWS_CONFIG = {
     'dbg': 'Debug',
     'opt': 'Release',
-    'gcov': 'Release',
+    'gcov': 'Debug',
     }
 
 
@@ -749,8 +749,15 @@ for l in languages:
   make_targets[makefile] = make_targets.get(makefile, set()).union(
       set(l.make_targets(args.regex)))
 
+def build_step_environ(cfg):
+  environ = {'CONFIG': cfg}
+  msbuild_cfg = _WINDOWS_CONFIG[cfg]
+  if msbuild_cfg:
+    environ['MSBUILD_CONFIG'] = msbuild_cfg
+  return environ
+
 build_steps = list(set(
-                   jobset.JobSpec(cmdline, environ={'CONFIG': cfg}, flake_retries=5)
+                   jobset.JobSpec(cmdline, environ=build_step_environ(cfg), flake_retries=5)
                    for cfg in build_configs
                    for l in languages
                    for cmdline in l.pre_build_steps()))
@@ -758,13 +765,13 @@ if make_targets:
   make_commands = itertools.chain.from_iterable(make_jobspec(cfg, list(targets), makefile) for cfg in build_configs for (makefile, targets) in make_targets.iteritems())
   build_steps.extend(set(make_commands))
 build_steps.extend(set(
-                   jobset.JobSpec(cmdline, environ={'CONFIG': cfg}, timeout_seconds=10*60)
+                   jobset.JobSpec(cmdline, environ=build_step_environ(cfg), timeout_seconds=10*60)
                    for cfg in build_configs
                    for l in languages
                    for cmdline in l.build_steps()))
 
 post_tests_steps = list(set(
-                        jobset.JobSpec(cmdline, environ={'CONFIG': cfg})
+                        jobset.JobSpec(cmdline, environ=build_step_environ(cfg))
                         for cfg in build_configs
                         for l in languages
                         for cmdline in l.post_tests_steps()))