diff --git a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl
index 6721edfa71..7951600697 100644
--- a/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl
+++ b/src/test/modules/libpq_pipeline/t/001_libpq_pipeline.pl
@@ -14,7 +14,15 @@ $node->init;
 $node->start;
 
 my $numrows = 700;
-my $libpq_pipeline = "$ENV{TESTDIR}/libpq_pipeline";
+my $libpq_pipeline;
+if (defined $ENV{MSBUILDDIR})
+{
+	$libpq_pipeline = "$ENV{MSBUILDDIR}/libpq_pipeline/libpq_pipeline.exe";
+}
+else
+{
+	$libpq_pipeline = "$ENV{TESTDIR}/libpq_pipeline";
+}
 
 my ($out, $err) = run_command([ $libpq_pipeline, 'tests' ]);
 die "oops: $err" unless $err eq '';
diff --git a/src/tools/msvc/vcregress.pl b/src/tools/msvc/vcregress.pl
index 35e8f67f01..7d46b9f0cc 100644
--- a/src/tools/msvc/vcregress.pl
+++ b/src/tools/msvc/vcregress.pl
@@ -60,6 +60,7 @@ copy("$Config/regress/regress.dll",               "src/test/regress");
 copy("$Config/dummy_seclabel/dummy_seclabel.dll", "src/test/regress");
 
 $ENV{PATH} = "$topdir/$Config/libpq;$ENV{PATH}";
+$ENV{MSBUILDDIR} = "$topdir/$Config";
 
 if ($ENV{PERL5LIB})
 {
