问题描述
我在C#.NET Standard项目const
中使用Google.Protobuf.Tools。我有多个原始定义。
MyProject / Protos / Requests / SampleRequest.proto
MyProject
MyProject / Protos / Requests / SubRequest.proto
Syntax = "proto3";
option csharp_namespace = "My.Projects.Protos.Requests";
package sampleRequests;
message SampleRequest {
int32 requestNumber =1;
SubRequest request =2;
}
现在,此代码将无法编译,并且显示的错误是SubRequest不明。
我想知道如何导入一个不同的原始文件,以便实现这一目标。我不太了解Syntax = "proto3";
option csharp_namespace = "My.Projects.Protos.Requests";
package subRequests;
message SubRequest {
int32 SubId =1;
string requestText =2;
}
cli选项,也找不到与此相关的任何清晰文档。
我们非常感谢您的帮助。提前致谢。 预先感谢。
解决方法
在评估导入时,针对每个--proto_path
对其进行测试,以查看是否可以找到合适的匹配项。例如,您可以将文件并排放置在Requests
文件夹中,使用--proto_path
给出 Protos 文件夹的位置,并在proto中与之相对:
import "Requests/SubRequest.proto";
还请注意,您需要考虑软件包;它们不在同一个程序包中,因此您可以通过以.
开头来明确限定其资格:
syntax = "proto3";
import "Requests/SubRequest.proto";
option csharp_namespace = "My.Projects.Protos.Requests";
package sampleRequests;
message SampleRequest {
int32 requestNumber =1;
.subRequests.SubRequest request =2;
}