不使用 CsProj 生成 Dotnet GRPC 客户端代码

Generate Dotnet GRPC Client code Without CsProj

可以使用 protoc 以不需要 csproj 或解决方案的方式生成 dotnet 代码:

protoc -I=$SRC_DIR --csharp_out=$DST_DIR $SRC_DIR/addressbook.proto

是否可以做类似的事情来为 grpc client/server 存根生成代码?

是的 - 你只需要 gRPC 插件,你可以在 Grpc.Tools 包中下载它。

然后你使用:

protoc --grpc_out=$DST_DIR --plugin=protoc-gen-grpc=$GRPC_PLUGIN $SRC_DIR/addressbook.proto`

其中 GRPC_PLUGIN 是从 NuGet 包到 grpc_csharp_plugin.exe(或 OS 的等效二进制文件)的路径。请注意,NuGet 包实际上只是一个 zip 文件,因此您可以根据需要编写脚本下载并解压缩它。

作为在 shell 脚本中执行此操作的示例,您可以查看 the generateprotos.sh script in gax-dotnet - 它还提供了一个指定您想要 .g.cs 后缀的示例。