Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.1k views
in Technique[技术] by (71.8m points)

c# - using csharp GRPC gen imported proto file not generated

I have separated my models and service into separate files

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

Using this command protoc --proto_path=./ --csharp_out=./out/dotnet --grpc_out=./out/dotnet ./main.proto will generate the GRPC serviceclient file in .cs but will not generate the models causing compilation error due to missing types use in the grpc APIs'.

If I move the models declaration into the main.proto everything works .. Any way to keep thins separated ?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

protoc takes multiple proto files as an argument:

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

You should be able to add sub.proto as an argument like so: protoc --proto_path=./ --csharp_out=./out/dotnet --grpc_out=./out/dotnet ./main.proto ./sub.proto.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...