繁体   English   中英

使用 csharp GRPC gen 导入的 proto 文件未生成

[英]using csharp GRPC gen imported proto file not generated

我已将模型和服务分成单独的文件

  • main.proto
    syntax = "proto3";
    package grpc;
    import "sub.proto";
    
    service Users {
        // SSO Adapter Profiles
      
        rpc AddUser (UserRequest) returns (UserResponse) {}
    }
  • 子原型
    syntax = "proto3";
    package grpc;
    
    
    message UserRequest {
        string FirstName = 1;
        string LastName = 2;
    }
    
    message UserResponse {
        int64  id=1;
    }

使用此命令protoc --proto_path=./ --csharp_out=./out/dotnet --grpc_out=./out/dotnet./main.proto将在.cs中生成 GRPC 服务\客户端文件,但不会生成模型由于缺少 grpc API 中使用的类型而导致编译错误。

如果我将模型声明移到main.proto ,一切正常。有什么方法可以保持分离吗?

您可以将通配符 * 用于多个 protofile

protoc --proto_path=./ --csharp_out=./out/dotnet --grpc_out=./out/dotnet ./*.proto

protoc将多个 proto 文件作为参数:

❯ protoc --help
Usage: protoc [OPTION] PROTO_FILES

您应该能够像这样添加sub.proto作为参数: protoc --proto_path=./ --csharp_out=./out/dotnet --grpc_out=./out/dotnet./main.proto./sub.proto .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM