从其他项目 protobuf 文件导入消息类型
Importing message Types from other project protobuf files
我正在尝试以一种方式构建我的原型文件,以便在构建各种语言时我包含的原型文件是公开可用的。我已经尝试 import public "webrtc/signaling.proto"
并且它删除了“未使用”消息,但是当我使用命令 ./protoc.exe -I=G:/MafiaProject/MafiaProtobuf/protofiles --csharp_out=G:/MafiaProject/MafiaProtobuf/csharp_out G:/MafiaProject/MafiaProtobuf/protofiles/mafia.proto
但看似当我为 go 构建时包含在内。
syntax = "proto3";
option go_package = "github.com/rgeorgeoff/webRTCProto";
package webrtc;
enum ReqType {
SDP = 0;
ICE = 1;
}
message RTCMessage {
ReqType req_type = 1;
bytes data = 2;
}
并且在上面的目录 mafia.proto 中:
syntax = "proto3";
option go_package = "github.com/rgeorgeoff/SlimePartyGoServer/protobuf3";
package mafia;
import "webrtc/signaling.proto";
... other definitions...
我只希望消息 types/enums 在我的构建文件 (python/go/etc) 中可用。我是否也必须为 C# 单独构建所有文件并单独复制它们?
您应该将 proto 文件的所有路径作为输入参数传递给 protoc 命令,例如:
protoc -I="."/MafiaProject/MafiaProtobuf/protofiles
--csharp_out="."/MafiaProject/MafiaProtobuf/csharp_out MafiaProject/MafiaProtobuf/protofiles/.proto MafiaProject/MafiaProtobuf/protofiles/webrtc/.proto
考虑像这样的树结构:
MafiaProject
└── MafiaProtobuf
├── csharp_out
│ ├── Mafia.cs
│ └── Signaling.cs
└── protofiles
├── mafia.proto
└── webrtc
└── signaling.proto
我正在尝试以一种方式构建我的原型文件,以便在构建各种语言时我包含的原型文件是公开可用的。我已经尝试 import public "webrtc/signaling.proto"
并且它删除了“未使用”消息,但是当我使用命令 ./protoc.exe -I=G:/MafiaProject/MafiaProtobuf/protofiles --csharp_out=G:/MafiaProject/MafiaProtobuf/csharp_out G:/MafiaProject/MafiaProtobuf/protofiles/mafia.proto
但看似当我为 go 构建时包含在内。
syntax = "proto3";
option go_package = "github.com/rgeorgeoff/webRTCProto";
package webrtc;
enum ReqType {
SDP = 0;
ICE = 1;
}
message RTCMessage {
ReqType req_type = 1;
bytes data = 2;
}
并且在上面的目录 mafia.proto 中:
syntax = "proto3";
option go_package = "github.com/rgeorgeoff/SlimePartyGoServer/protobuf3";
package mafia;
import "webrtc/signaling.proto";
... other definitions...
我只希望消息 types/enums 在我的构建文件 (python/go/etc) 中可用。我是否也必须为 C# 单独构建所有文件并单独复制它们?
您应该将 proto 文件的所有路径作为输入参数传递给 protoc 命令,例如:
protoc -I="."/MafiaProject/MafiaProtobuf/protofiles --csharp_out="."/MafiaProject/MafiaProtobuf/csharp_out MafiaProject/MafiaProtobuf/protofiles/.proto MafiaProject/MafiaProtobuf/protofiles/webrtc/.proto
考虑像这样的树结构:
MafiaProject
└── MafiaProtobuf
├── csharp_out
│ ├── Mafia.cs
│ └── Signaling.cs
└── protofiles
├── mafia.proto
└── webrtc
└── signaling.proto