如何将现有的 .proto 文件作为 link 添加到 .net 核心项目

How to add an existing .proto file as link to a .net core project

我按照"hello world" grpc tutorial 在.net core (3.0) 中创建了一个grpc 服务器和客户端项目。一切都很好。当我完成将 .proto 文件添加到客户端项目的步骤时,我想知道是否有一种方法可以避免复制文件,而是将服务器 .proto 文件添加为 link 客户端项目。

来自关于如何将 proto 文件添加到客户端的文档:

  • Create a Protos folder in the gRPC client project.
  • Copy the Protos\greet.proto file from the gRPC Greeter service to the gRPC client project.

然后将复制的文件添加到客户端 .csproj,如下所示:

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

是否可以将服务器项目中的 .proto 文件作为 link 添加到客户端?

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

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

我找到了一篇博客 post 解释如何将 linked 文件添加到 .net 核心 csproj here