diff --git a/src/csharp/Grpc.Tools.Tests/ProtoToolsPlatformTaskTest.cs b/src/csharp/Grpc.Tools.Tests/ProtoToolsPlatformTaskTest.cs index e98f6e93fa3..51b65c5bee8 100644 --- a/src/csharp/Grpc.Tools.Tests/ProtoToolsPlatformTaskTest.cs +++ b/src/csharp/Grpc.Tools.Tests/ProtoToolsPlatformTaskTest.cs @@ -79,6 +79,11 @@ namespace Grpc.Tools.Tests { Assert.AreEqual("x64", _task.Cpu); } + // On windows arm64, x86 is used until a native protoc is shipped + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + Assert.AreEqual("x86", _task.Cpu); + } else { Assert.AreEqual("arm64", _task.Cpu); diff --git a/src/csharp/Grpc.Tools/ProtoToolsPlatform.cs b/src/csharp/Grpc.Tools/ProtoToolsPlatform.cs index 2bccb0c3ba9..0bb57317b45 100644 --- a/src/csharp/Grpc.Tools/ProtoToolsPlatform.cs +++ b/src/csharp/Grpc.Tools/ProtoToolsPlatform.cs @@ -65,6 +65,11 @@ namespace Grpc.Tools { Cpu = "x64"; } + // Use x86 on Windows arm64 until a native protoc is shipped + else if (Os == "windows" && Cpu == "arm64") + { + Cpu = "x86"; + } return true; }