diff --git a/packages/flutter_tools/lib/src/windows/build_windows.dart b/packages/flutter_tools/lib/src/windows/build_windows.dart
index 7f2f41f..6536232 100644
--- a/packages/flutter_tools/lib/src/windows/build_windows.dart
+++ b/packages/flutter_tools/lib/src/windows/build_windows.dart
@@ -5,16 +5,13 @@
 import '../artifacts.dart';
 import '../base/common.dart';
 import '../base/file_system.dart';
-import '../base/io.dart';
 import '../base/logger.dart';
-import '../base/process_manager.dart';
+import '../base/process.dart';
 import '../build_info.dart';
 import '../cache.dart';
-import '../convert.dart';
 import '../globals.dart';
 import '../project.dart';
 import '../reporting/reporting.dart';
-
 import 'msbuild_utils.dart';
 import 'visual_studio.dart';
 
@@ -63,30 +60,21 @@
   final String configuration = buildInfo.isDebug ? 'Debug' : 'Release';
   final String solutionPath = windowsProject.solutionFile.path;
   final Stopwatch sw = Stopwatch()..start();
-  // Run the script with a relative path to the project using the enclosing
-  // directory as the workingDirectory, to avoid hitting the limit on command
-  // lengths in batch scripts if the absolute path to the project is long.
-  final Process process = await processManager.start(<String>[
-    buildScript,
-    vcvarsScript,
-    fs.path.basename(solutionPath),
-    configuration,
-  ], workingDirectory: fs.path.dirname(solutionPath));
   final Status status = logger.startProgress(
     'Building Windows application...',
     timeout: null,
   );
   int result;
   try {
-    process.stderr
-      .transform(utf8.decoder)
-      .transform(const LineSplitter())
-      .listen(printError);
-    process.stdout
-      .transform(utf8.decoder)
-      .transform(const LineSplitter())
-      .listen(printTrace);
-    result = await process.exitCode;
+    // Run the script with a relative path to the project using the enclosing
+    // directory as the workingDirectory, to avoid hitting the limit on command
+    // lengths in batch scripts if the absolute path to the project is long.
+    result = await processUtils.stream(<String>[
+      buildScript,
+      vcvarsScript,
+      fs.path.basename(solutionPath),
+      configuration,
+    ], workingDirectory: fs.path.dirname(solutionPath));
   } finally {
     status.cancel();
   }
