使用protobuf时报错 protobuf.Any 未定义


背景信息

使用命令行编译xxxx.proto时报错。

报错信息


google/protobuf/any.proto: File not found.
xxxxxx.proto:4:1: Import "google/protobuf/any.proto" was not found or had errors.
xxxxxx.proto:12:5: "google.protobuf.Any" is not defined.

解决方式

添加  --proto_path=..\..\packages\Google.Protobuf.Tools.3.19.3\tools  指定any.proto的路径

..\..\packages\Google.Protobuf.Tools.3.19.3\tools\windows_x64\protoc.exe -I=.\ --csharp_out=.\output\ --proto_path=..\..\packages\Google.Protobuf.Tools.3.19.3\tools .\xxxxxxx.proto

背景信息

使用NuGet引用的如下两个组件

Google.Protobuf.3.19.3

Google.Protobuf.Tools.3.19.3

编译工具在Tools里面,依赖库在packages\Google.Protobuf.Tools.3.19.3\tools\google\protobuf 中。

但是指定proto_path路径时,需要指定packages\Google.Protobuf.Tools.3.19.3\tools\