首先是环境配置,用的dotnet5.0的sdk,所以Vscode的C#插件版本要选择1.24,然后需要配置C# Snippets、NuGget Package Manager、vscode-proto3、vscode-solution-extension(可选)。
以vscode-solution-extension为例新建Asp.netCore web.app,删除多余项目。新建Protos文件夹,该文件夹内部放置XXX.proto文件。然后ctrl+shift+p选择NuGet package manager gui,在里面选择添加new package,搜索Grpc.aspnetcore并添加。工业4.0的CFX也在这里面可以搜索加入,后续在研究。
这时候需要在文件根目录的XXX.csproj文件里添加编写好的proto文件,否则在后续编写服务代码的时候会出现无法引用。
到这一步需要配置proto3的东西,参考了一下别人的教程。proto3配置。在插件里选择proto3,配置插件的settings.json。第一部分是proto的path,第二部分是options的内容,分别为proto-path(也就是你要编译的proto的地方),csharp_out就是C#的输出文件,grpc_out就是根据C#输出的带有C#风格的grpc的cs文件。最后一个是插件,他需要通过插件来进行从原生C#到带有grpc的C#文件的转换(两个C#文件都有用的)。
.csproj里加入了proto文件后,现在按ctrl+~调出命令行,输入dotnet build 执行编译,编译完后看文件目录中找到obj/Debug/netX.0里面是否存在两个.cs文件,如果存在,就ok。
如果不存在,则然后打开你的proto文件,按Ctrl+shift+p,选择proto3:compile this proto。会在文件的根目录得到两个.cs文件。再将两个文件放入obj/Debug/netX.0