原型:创建cs文件

protogen: create cs file

我正在尝试使用 Protogen 创建 C# 类这是我的语法

 <Exec WorkingDirectory="..\..\ProtoFiles" Command="$(3rdParty)\protobuf\protobuf-net\protogen.exe  --proto_path:ClientsList.proto --csharp_out:ClientsList.cs" />

但没有创建 C# 类

当我使用相同的原型创建 C++ 时 类 一切正常(我需要添加 syntax="proto2";我不知道这是否会影响 C# 部分)

如果我 运行 它是手动的:C:rdParty\protobuf\protobuf-net>protogen.exe --proto_path:ClientsList.proto --csharp_out:ClientsList.cs

用法:原型 [选项] PROTO_FILES 解析 PROTO_FILES 并根据给定的选项生成输出:

-IPATH, --proto_path=PATH 指定要搜索的目录 进口。可以指定多次; 目录将按顺序搜索。如果不 给定,使用当前工作目录。

--version 显示版本信息并退出。

......

注意 PROTO_FILES 可以是 .proto 或 **/.proto (递归)当单个 使用导入位置来处理找到的所有模式文件。在递归模式下, 从当前目录导入也可以只指定名称。

csharp_out 参数是一个文件夹,而不是一个文件,这不是您使用 proto_path(同样是文件夹)的方式;它是 =,而不是 : - 在你的情况下你可能想要:

protogen --csharp_out=. ClientsList.proto

请注意,语法是 protoc 命令行语法的镜像。

但是!还有 MSBuild 包可能会比您自己的自定义任务更容易使用,我正在研究“生成器”实现 - 这意味着零设置:只需添加 .proto 和 运行.