在预构建事件中使用 protogen 从 .proto 文件生成 c# 文件

Posted

技术标签:

【中文标题】在预构建事件中使用 protogen 从 .proto 文件生成 c# 文件【英文标题】:Generating c# file from .proto file using protogen on pre build event 【发布时间】:2012-05-10 16:04:36 【问题描述】:

我们在工作中使用 protobuf 已经有一段时间了,我决定为客户编写一个小控制台应用程序,让他们可以在现场进行一些测试。

我启动了一个新的 c# 控制台应用程序并从 nuget 下载了 google.protocolbuffers 和 protobuf-net。

我想要实现的是将“messages.proto”文件转换为“messages.cs”

我试图让 protobuf 在预构建事件上构建消息文件,但没有成功,似乎命令参数自我们第一次实现以来已经改变。我按照这里的例子

http://code.google.com/p/protobuf-csharp-port/wiki/ProtoGen

并添加了以下预构建事件

"$(projectdir)packages\Google.ProtocolBuffers.2.4.1.473\tools\protogen.exe" --proto_path=./protos protos/messages.proto --include_imports -output_directory=./

但是我得到以下错误

Input file protos/messages.proto doesn't exist.

我尝试了各种组合,但似乎没有任何效果。我是在接近这一切都错了还是这里有问题?非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

您是否尝试过使用绝对路径?我隐约记得自己有一个类似的问题,结果证明是它没有正确解析相对路径。

【讨论】:

以上是关于在预构建事件中使用 protogen 从 .proto 文件生成 c# 文件的主要内容,如果未能解决你的问题,请参考以下文章

php 事件日历PRO:从相关的帖子逻辑中删除帖子标签,因此,仅使用事件类别。

php 事件日历PRO:从相关的帖子逻辑中删除帖子标签,因此,仅使用事件类别。

Huggingface 微调 - 如何在预训练的基础上构建自定义模型

php 事件日历PRO:从单个事件页面上显示删除PRO附加字段。

php 事件日历PRO:从单个事件页面上显示删除PRO附加字段。

[专栏作家] Protobuf-net使用ProtoGen批量转换成cs文件