【C#】: Import “google/protobuf/timestamp.proto“ was not found or had errors.问题彻底被解决!

使用C# 作为开发语言,将pb文件转换为cs文件的时候相信很多人都会遇到一个很棘手的问题.

第一个问题:那就是protoc3环境下,import Timestamp的问题,在头部 import “google/protobuf/timestamp.proto”;的时候会抛异常:google/protobuf/timestamp.proto" was not found or had errors;

解决办法【博主「pamxy」的原创文章的分享】:

(注:之后才发现,不需要添加这个目录也可以,因为timestamp.proto生成的timestamp.pb.cc文件已经在编译libprotobuf.lib文件时作为源码编译进去了,而编译protoc.exe里也用到了libprotobuf.lib,所以自然默认已经有源码了,所以不用再导入!)
 

直接把import “google/protobuf/timestamp.proto删除即可。

第二个问题: "google.protobuf.Timestamp" is not defined.

一般情况下在protoc3环境下,是不需要直接导入google.protobuf.timestamp的,因为在编译的过程中会lib文件中会读取到这个问题,但如果在文件中调用了timestamp,如下:

那就要在头部调用一下timestamp这个文件了,但博主也是在调用过程中一直被提示 "google.protobuf.Timestamp" is not defined.

实在没办法,只好去查找这个文件的路径:protobuf-master\src\google\protobuf文件夹内的timestamp.proto文件,直接把文件copy到你要编译的文件的同级目录下,然后修改头部的timestamp文件调用路径:import "timestamp.proto";

最后,这个文件终于解决了。。。。。。。

第三个问题:将protoc文件转成cs文件后怎么调用?

a、在引用的项目中找到: 工具>>NuGet包管理器>>管理解决方案的NuGet程序包>>搜索"Google.ProtocolBuffers"并安装

b、直接将protoc文件转换成的cs文件引入项目中,调用。

这个小问题记录一下,也方便大家在遇到这个问题的时候作为参考。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值