You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET 6.0中实现gRPC遇编译错误:找不到Protos\greet.proto文件

ASP.NET 6.0集成gRPC时“找不到proto文件”编译错误的解决办法
  • 检查proto文件的项目配置
    右键proto文件选择「属性」,确保「生成操作」设置为Protobuf Compiler,「自定义工具」为MSBuild:Compile。手动添加的proto文件默认不会自动配置这两项,这是最常见的触发报错的原因。

  • 验证项目文件中的路径配置
    打开项目的.csproj文件,核对<Protobuf>节点的路径是否和实际文件位置匹配。比如模板默认配置是Protos/*.proto,如果你的新服务proto文件放在子目录或文件名拼写有误(注意编译工具对大小写敏感),就会触发路径错误。可以手动指定精确路径,例如:

    <ItemGroup>
      <Protobuf Include="Services/Protos/new_service.proto" GrpcServices="Server" />
    </ItemGroup>
    

    其中GrpcServices可根据需求选择Server、Client或Both。

  • 清理缓存并重建项目
    缓存异常也可能导致路径识别错误,执行以下步骤:

    • 右键项目选择「清理」
    • 删除项目目录下的bin和obj文件夹
    • 重新生成解决方案
  • 统一gRPC相关包版本
    确保项目中所有gRPC相关包(如Grpc.Tools)的版本和Grpc.AspNetCore 2.48.0保持一致。模板项目会自动配套兼容的工具包版本,手动添加服务时版本不一致也可能引发编译问题。

  • 优化手动处理方案
    如果你目前用手动方式处理,可以放弃通配符,在.csproj里逐个指定proto文件路径,避免路径解析歧义:

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

内容的提问来源于stack exchange,提问作者phusonu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:45:13