首页 > 解决方案 > 如何将现有的 .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 文件添加为客户端的链接?

标签: .net-coregrpcprotobuf-net

解决方案


经过反复试验,我找到了一种方法。您可以将include属性设置为要链接的文件的路径,将Link属性设置为您希望文件在项目中显示的路径:

<ItemGroup>
    <Protobuf Include="..\GreeterService\Protos\greet.proto" Link="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>

我在这里找到了一篇解释如何将链接文件添加到 .net 核心 csproj 的博客文章


推荐阅读