.NET 6下VS Code中修改proto后如何重新生成gRPC类?
解决.NET 6 gRPC修改proto后重新生成代码的问题
问题原因
你新增Test RPC方法后出现CS0115错误,是因为修改.proto文件后没有重新生成对应的服务抽象接口,导致实现类找不到匹配的方法定义。
CLI操作步骤
确认项目配置
默认通过dotnet new grpc创建的项目,.csproj文件已包含proto文件的生成配置,确保其存在:<ItemGroup> <Protobuf Include="Protos\greet.proto" GrpcServices="Server" /> </ItemGroup>此配置会让.NET构建系统自动关联proto文件与代码生成逻辑。
重新生成代码(推荐方式)
在项目根目录执行以下CLI命令,触发代码生成与编译:dotnet build执行后,系统会自动解析修改后的
greet.proto,生成包含Test方法的服务抽象接口,此时再实现该方法即可解决错误。可选:单独触发代码生成
若需仅生成代码不编译项目,可先全局安装Grpc工具包:dotnet tool install -g Grpc.Tools然后使用工具生成代码(路径需根据你的实际环境调整):
protoc -I Protos Protos/greet.proto --csharp_out GrpcGenerated --grpc_out GrpcGenerated --plugin=protoc-gen-grpc=%USERPROFILE%\.dotnet\tools\grpc_csharp_plugin.exe不过更推荐使用
dotnet build,因为它会自动处理项目依赖与路径配置,更简便可靠。
内容的提问来源于stack exchange,提问作者A.Mohammadi
相关产品推荐
相关产品推荐

