.net-core - 如何将现有的 .proto 文件添加为 .net 核心项目的链接
问题描述
我按照“hello world”grpc 教程在 .net core (3.0) 中创建了一个 grpc 服务器和客户端项目。一切都很顺利。当我完成将 .proto 文件添加到客户端项目的步骤时,我想知道是否有办法避免复制文件,而是将服务器 .proto 文件添加为客户端项目的链接。
从有关如何将 proto 文件添加到客户端的文档中:
- 在 gRPC 客户端项目中创建一个 Protos 文件夹。
- 将 Protos\greet.proto 文件从 gRPC Greeter 服务复制到 gRPC 客户端项目。
然后将复制的文件添加到客户端 .csproj 中,如下所示:
<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
是否可以将服务器项目中的 .proto 文件添加为客户端的链接?
解决方案
经过反复试验,我找到了一种方法。您可以将include属性设置为要链接的文件的路径,将Link属性设置为您希望文件在项目中显示的路径:
<ItemGroup>
<Protobuf Include="..\GreeterService\Protos\greet.proto" Link="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
我在这里找到了一篇解释如何将链接文件添加到 .net 核心 csproj 的博客文章。
推荐阅读
- javascript - 根据滚动位置在滚动上移动元素
- oracle - ORA-01830: 日期格式图片在 Oracle EBS 中转换整个输入字符串之前结束
- rust - 如何为函数指针参数指定通用生命周期?
- python - 即使文件中存在有效的 json,也无法解码 JSON 对象
- c++ - 隐式转换类模板
- automation - CRON JOB 每天下午 6 点运行脚本
- algorithm - 为什么 BIDE 使用半最大周期进行 serach 空间修剪?
- c# - 使用 AngleSharp 解析页面
- tunnel - 即使在注销服务器时如何保持 ngrok 运行
- php - 如何从对象中读取特定数据?