Как импортировать protobuf известных типов в AspNet Core gRPC Service - PullRequest
0 голосов
/ 06 октября 2019

Я ', ломая голову о том, как импортировать "google / protobuf / empty.proto" в мой файл прото. Что я делаю до сих пор:

  1. В моем файле .csproj я добавил следующее:

    <Project Sdk="Microsoft.NET.Sdk.Web">
    
       <PropertyGroup>
          <TargetFramework>netcoreapp3.0</TargetFramework>
       </PropertyGroup>
    
       <ItemGroup>
          <Protobuf Include="C:\Users\me\.nuget\packages\google.protobuf.tools\3.10.0\tools\google\protobuf\*.proto" GrpcServices="Server"/>
          <Protobuf Include="Protos\*.proto" GrpcServices="Server" />
       </ItemGroup>
    
       <ItemGroup>
          <PackageReference Include="Grpc.AspNetCore" Version="2.23.2" />
          <PackageReference Include="System.Reactive" Version="4.1.6" />
       </ItemGroup>
    
    </Project>
    
  2. В папке моего проектаУ меня есть папка с именем «Protos», где у меня есть файл test.proto, в котором я хотел бы использовать «empty.proto», например:

import "google/protobuf/empty.proto";

Однако я получаю ошибку File not found in project. Я также не люблю указывать "3.10.0" в ItemGroup. Как правильно использовать google protobuf для известных типов?

1 Ответ

0 голосов
/ 11 ноября 2019

Известные protos (такие как empty.proto) фактически получают специальную обработку в пакете Grpc.Tools - путь импорта для хорошо известных файлов .proto добавляется автоматически, а сгенерированный код уже является частью самого Google.Protobuf.

Единственное, что вам нужно сделать в вашем файле прото, это добавить "import" google / protobuf / empty.proto ", и после этого вы можете использовать google.protobuf.Empty, как обычно, в сообщениях. Никаких других шаговнеобходимо.

...