ASP.NET gRPC项目如何导入同目录下的其他自定义proto文件?
ASP.NET gRPC项目同目录自定义proto文件导入失败解决方案
你遇到的报错是因为Protobuf编译器默认的导入根路径为项目根目录,而非Protos子目录,可通过以下两种方案解决:
方案一:直接使用相对项目根目录的导入路径
将mainsvc.proto中的导入语句修改为:import "Protos/enums.proto";无需修改其他项目配置,修改后重新生成项目即可生效。
方案二:将
Protos目录添加到Protobuf编译器的导入路径
如果你希望保持import "enums.proto"的写法,可以统一配置导入路径:- 右键项目 → 选择「属性」→ 切换到「生成」选项卡
- 找到「Protobuf 编译器」配置分组,在「附加导入目录」中添加
$(ProjectDir)Protos后保存配置 - 重新生成项目即可解决导入报错
额外注意事项:
- 需确认
enums.proto的生成操作已设置为Protobuf 编译器,右键该文件→属性→「生成操作」选择Protobuf 编译器即可,公共枚举对应的「gRPC 存根类」可选择「不生成」- 使用
enums.proto中定义的枚举时,需要带上枚举所属的包名前缀,比如enums.proto声明了package MyServer;,则用法为MyServer.你的枚举名
内容的提问来源于stack exchange,提问作者ZedZip
相关产品推荐
相关产品推荐

