我用docker构建了一个ASP Net Core API项目。该项目包含一些原始文件,并导入了一些Google知名类型。但是我得到了输出错误:
- google/protobuf/Timestamp.proto : error : File not found. [/src/mymy/mymy.csproj]
- Protos/notification.proto(4,1): error : Import "google/protobuf/Timestamp.proto" was not found or had errors. [/src/mymy/mymy.csproj]
- Protos/notification.proto(112,5): error : "google.protobuf.Timestamp" is not defined. [/src/mymy/mymy.csproj]
我将源代码放在github中:https://github.com/pearl2201/docker-aspnetcore-grpc
答案 0 :(得分:1)
是正确的……它们没有定义;对于Grpc.Tools
,导入仍然需要存在。为此,您可以使用ProtoRoot
行上的<Protobuf ...>
选项来告诉它根目录在哪里。在BUILD-INTEGRATION中还提到了$(Protobuf_StandardImportsPath)
,但这似乎仅指<ProtoCCommand>
。
(顺便说一句:protobuf-net工具在包中包含所有常用导入的副本;如果未从文件系统中解析它们,它会查看其在程序集中的内容,但是:这不是直接的更改,因为protobuf-net工具输出的C#完全不同,用于不同的库实现。