当我构建 GRPC 解决方案时,MSBUILD 无法解析 Mac OSX 上的相应工具链

问题描述 投票:0回答:1

我简直要疯了:我无法再构建任何 GRPC 项目,也找不到解决方案。

当我运行构建命令(

dotnet build
)时,我收到以下错误:

mr@bogobox GrpcLab % dotnet build
MSBuild version 17.9.8+b34f75857 for .NET
  Determining projects to restore...
  All projects are up-to-date for restore.
/Users/mr/.nuget/packages/grpc.tools/2.62.0/build/_protobuf/Google.Protobuf.Tools.targets(291,5): error MSB6004: The specified task executable location "/Users/mr/.nuget/packages/grpc.tools/2.62.0/tools/macosx_aarch64/protoc" is invalid. [/Users/mr/temp/dotnetlab/grpclab/GrpcLab/GrpcGreeter/GrpcGreeter.csproj]

Build FAILED.

分析该消息,我看到对架构的引用

macosx_aarch64
,这对我来说听起来很奇怪。

我的笔记本电脑是 Apple M1 Pro (

arm64
)。 Msbuild 似乎无法解决正确的架构或相关问题。

我尝试重新安装 grpc 工具,但错误仍然存在。

上述错误是在从 dotnet 模板创建的全新 Grpc 服务上生成的。

有什么想法吗?

.net msbuild grpc protoc
1个回答
0
投票

新的一天,新的心态。

我检查了

msbuild
protobuffer 目标文件,发现经过一些逻辑,通过连接我系统上的两个环境变量
PROTOBUF_TOOLS_OS
PROTOBUF_TOOLS_CPU
来解析路径:

PROTOBUF_TOOLS_CPU=aarch64
PROTOBUF_TOOLS_OS=macosx

将前者修复为“x64”将重新建立预期的行为。

最后一步是研究可能是配置错误的根本原因。

© www.soinside.com 2019 - 2024. All rights reserved.