在Visual Studio中生成为空文件的gRPC C#类

brvekthn  于 2022-11-25  发布在  C#
关注(0)|答案(1)|浏览(228)

我有一个简单的.NET 6控制台应用程序,我试图在其中从grpc proto文件生成c#代码。项目文件如下所示:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

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

  <ItemGroup>
    <PackageReference Include="Google.Protobuf" Version="3.21.9" />
    <PackageReference Include="Grpc.Net.Client" Version="2.49.0" />
    <PackageReference Include="Grpc.Tools" Version="2.50.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
  </ItemGroup>
</Project>

我还有一个简单的proto文件,如下所示:

syntax = "proto3";

option csharp_namespace = "GrpcGreeter";

package greet;

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply);
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings.
message HelloReply {
  string message = 1;
}

关于proto文件,当我右击这个文件的属性时,一切看起来都很好:

然而,当我编译应用程序时,Greeter服务的GRPC类型应该会自动生成。然而,我发现生成的文件完全是空的。例如,生成了以下文件:

但它们完全是空文件。
我是不是漏掉了什么明显的步骤?

huwehgph

huwehgph1#

我已经创建了一个控制台应用程序。当我创建一个ASP.NET核心gRPC服务时,它解决了这个问题。我仍然不知道为什么一个简单的控制台应用程序不能工作

相关问题