Asp.net core Protobuf不工作-Jetbrains Rider.NET Core 3.1
我正在尝试做一个简单的gRPC教程。最初,我从Jetbrains Rider开始创建一个新的gRPC服务,然后我为客户端创建了一个控制台应用程序,并安装了:Asp.net core Protobuf不工作-Jetbrains Rider.NET Core 3.1,asp.net-core,jetbrains-ide,Asp.net Core,Jetbrains Ide,我正在尝试做一个简单的gRPC教程。最初,我从Jetbrains Rider开始创建一个新的gRPC服务,然后我为客户端创建了一个控制台应用程序,并安装了: Google.Protobuf - 3.11.4 Grpc.Net.Client - 2.28.0-pre2 Grpc.Tools - 2.28.0-pre3 它看起来不像是为greet.proto生成的代码,因为我得到了红色的波形var client=new Greeter.GreeterClient(通道) 然而,当我在VisualS
Google.Protobuf - 3.11.4
Grpc.Net.Client - 2.28.0-pre2
Grpc.Tools - 2.28.0-pre3
它看起来不像是为greet.proto
生成的代码,因为我得到了红色的波形var client=new Greeter.GreeterClient(通道)代码>
然而,当我在VisualStudio中打开项目时,一切似乎都正常。我是不是错过了一个插件或者什么
我的csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.11.4" />
<PackageReference Include="Grpc.Net.Client" Version="2.28.0-pre2" />
<PackageReference Include="Grpc.Tools" Version="2.28.0-pre3" />
</ItemGroup>
<ItemGroup>
<Protobuf Include="Protos\greet.proto">
<GrpcServices>Client</GrpcServices>
<OutputDir>obj\Debug\netcoreapp3.1\</OutputDir>
<Access>Public</Access>
<ProtoCompile>True</ProtoCompile>
<ProtoRoot></ProtoRoot>
<CompileOutputs>True</CompileOutputs>
<Generator>MSBuild:Compile</Generator>
</Protobuf>
</ItemGroup>
</Project>
Exe
netcoreapp3.1
客户
obj\Debug\netcoreapp3.1\
公开的
真的
真的
MSBuild:编译
如果它在Rider中编译(编译的文件应该在文件夹obj/Debug/[您的netcore目标]/
),那么您已经正确设置了它并且它可以工作(=它编译)。“Only”Rider很难找到编译类(在Rider 2019.3.4 build 193.6494.48中测试)
这似乎是Rider中的一个bug(请参阅或),它是由混合NuGet版本引起的
确保解决方案中的所有其他项目使用相同版本的gRPC相关LIB
我成功地将其设置为以下版本(针对netcoreapp3.0):
我的服务器应用程序:
<PackageReference Include="Grpc.AspNetCore" Version="2.27.0" />
我的客户端应用程序
<PackageReference Include="Google.Protobuf" Version="3.11.2" />
<PackageReference Include="Grpc.Net.Client" Version="2.25.0" />
<PackageReference Include="Grpc.Tools" Version="2.27.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
运行时间;建设;本地人;内容文件;分析仪;可传递的
全部的
注意版本2.27.0中的Grpc.AspNetCore包含对Google.Protobuf 3.11.2和Grpc.Tools 2.27.0的引用。所以我不能在我的客户端项目中使用不同的版本。或者我可以,它会编译,但Rider找不到文件
简单地说,确保解决方案中所有项目中所有与gRPC相关的NUGET使用完全相同的版本,包括引用的NUGET(由您明确使用的NUGET引用)
希望它有帮助如果它在Rider中编译(编译的文件应该在文件夹obj/Debug/[您的netcore目标]/
中),那么您已经正确设置了它,并且它可以工作(=它编译)。“Only”Rider很难找到编译类(在Rider 2019.3.4 build 193.6494.48中测试)
这似乎是Rider中的一个bug(请参阅或),它是由混合NuGet版本引起的
确保解决方案中的所有其他项目使用相同版本的gRPC相关LIB
我成功地将其设置为以下版本(针对netcoreapp3.0):
我的服务器应用程序:
<PackageReference Include="Grpc.AspNetCore" Version="2.27.0" />
我的客户端应用程序
<PackageReference Include="Google.Protobuf" Version="3.11.2" />
<PackageReference Include="Grpc.Net.Client" Version="2.25.0" />
<PackageReference Include="Grpc.Tools" Version="2.27.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
运行时间;建设;本地人;内容文件;分析仪;可传递的
全部的
注意版本2.27.0中的Grpc.AspNetCore包含对Google.Protobuf 3.11.2和Grpc.Tools 2.27.0的引用。所以我不能在我的客户端项目中使用不同的版本。或者我可以,它会编译,但Rider找不到文件
简单地说,确保解决方案中所有项目中所有与gRPC相关的NUGET使用完全相同的版本,包括引用的NUGET(由您明确使用的NUGET引用)
希望有帮助尝试删除projects obj目录,然后重新加载解决方案。尝试删除projects obj目录,然后重新加载解决方案