gpt4 book ai didi

c# - 从不同目录导入proto文件

转载 作者:行者123 更新时间:2023-12-04 12:37:06 24 4
gpt4 key购买 nike

我正在努力为 grpc 导入编写正确的配置。
所以.net解决方案结构是这样的:
\Protos\Common\common.proto
\Protos\Vehicle\car.proto
\汽车微服务
在 car.proto 里面我有:import "common.proto"我要的是生成的 grpc 代码位于项目内 汽车微服务。
在 CarMicroservice.csproj 中,我写了 protos 的路径:

<Protobuf Include="common.proto" ProtoRoot="..\Protos\Common\" />
<Protobuf Include="car.proto" ProtoRoot="..\Protos\Vehicle\" />
但得到错误:'common.proto' 没有这样的文件或目录
问题是:
如何在 car.proto 中正确导入 common.proto?
注意:我已经看过类似的问题,但无法使其适用于我的案例
Importing .proto files from another project

最佳答案

好的,我终于解决了这个问题。 @DazWilkin 也指出了这一点。

  • 您不能在 import 中使用相对路径,所以你应该使用项目的绝对路径。就我而言,它是:import "Common/common.proto"
  • 使用项目根目录作为 proto 文件的位置。所以,而不是 ProtoRoot="..\Protos\Common\"使用 ProtoRoot="../Protos/"现在是有趣的部分。
    出于某种原因,当我在 ProtoRoot 路径中使用反斜杠作为 "..\Protos\
    我收到“找不到文件”的错误。所以不要对路径使用反斜杠。
    CarMicroservice.csproj 中的最终代码如下:
  • <Protobuf Include="Common/common.proto" ProtoRoot="../Protos/" />
    <Protobuf Include="Vehicle/car.proto" ProtoRoot="../Protos/" />

    关于c# - 从不同目录导入proto文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63470834/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com