Mortalus
Mortalus

Reputation: 10712

using csharp GRPC gen imported proto file not generated

I have separated my models and service into separate files

    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;
    }

Using this command protoc --proto_path=./ --csharp_out=./out/dotnet --grpc_out=./out/dotnet ./main.proto will generate the GRPC service\client 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 ?

Upvotes: 0

Views: 1159

Answers (2)

user2250152
user2250152

Reputation: 20595

You can use wild character * for multiple protofiles

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

Upvotes: 1

Sergii Tkachenko
Sergii Tkachenko

Reputation: 151

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.

Upvotes: 0

Related Questions