diff --git a/src/csharp/Grpc.Tools/ProtoCompile.cs b/src/csharp/Grpc.Tools/ProtoCompile.cs
index 93608e1ac023a75e5c1050c68562300a92aa18e2..f6964205d2bf1d437aa9d8b0be1741510fbbd61a 100644
--- a/src/csharp/Grpc.Tools/ProtoCompile.cs
+++ b/src/csharp/Grpc.Tools/ProtoCompile.cs
@@ -322,6 +322,7 @@ namespace Grpc.Tools
             {
                 cmd.AddArg(proto.ItemSpec);
             }
+            cmd.AddSwitchMaybe("error_format", "msvs");
             return cmd.ToString();
         }
 
diff --git a/src/csharp/Grpc.Tools/build/_protobuf/Google.Protobuf.Tools.targets b/src/csharp/Grpc.Tools/build/_protobuf/Google.Protobuf.Tools.targets
index 26f9efb5a84a96eaa4f0d5e4cde27d9a6a55ee3c..1fa6ca1eb362c9fcd3bde2a871e82c8c49cca8fd 100644
--- a/src/csharp/Grpc.Tools/build/_protobuf/Google.Protobuf.Tools.targets
+++ b/src/csharp/Grpc.Tools/build/_protobuf/Google.Protobuf.Tools.targets
@@ -271,6 +271,7 @@
       GrpcPluginExe="%(_Protobuf_OutOfDateProto.GrpcPluginExe)"
       GrpcOutputDir="%(_Protobuf_OutOfDateProto.GrpcOutputDir)"
       GrpcOutputOptions="%(_Protobuf_OutOfDateProto._GrpcOutputOptions)"
+      LogStandardErrorAsError="true"
     >
       <Output TaskParameter="GeneratedFiles" ItemName="_Protobuf_GeneratedFiles"/>
     </ProtoCompile>