我有项目Protobuf.Shared,其中包含共享原型文件。该项目打包到 NuGet 包中。
项目结构:
- .nuspec
- proto
- shared.proto
- base.proto
- Dummy.cs
我还有项目 Protobuf.Server,它使用 Protobuf.Shared NuGet 包,并且还包含自己的原型文件。
项目结构:
- proto
- server.proto
- Dummy.cs
我成功导入了共享原型文件,它们在构建操作期间被正确编译。在 Dummy.cs 中,我可以使用生成的消息类。
问题:
当我想将shared.proto(从Protobuf.Shared)导入到server.proto时,构建操作失败,并出现找不到shared.proto的错误。 在这种情况下如何正确导入 proto 以获得成功的项目构建? 要求通过 NuGet 包使用共享原型。
我在 GitHub 上制作了一个带有自述文件的 示例,以节省您的时间。
我想要实现的server.proto结果:
syntax = "proto3";
package server;
option csharp_namespace = "Protobuf.Server";
// Import shared.proto somehow
import "shared.proto";
//import "1.0.0/shared.proto";
message SomeMessage {
int32 Amount = 1;
//shared.Name name = 2;
}
<PropertyGroup>
<Protobuf_ProtoRoot>Protos</Protobuf_ProtoRoot>
<Protobuf_StandardImportsPath>$(Protobuf_StandardImportsPath);Protos</Protobuf_StandardImportsPath>
</PropertyGroup>