C# protogen:创建cs文件

C# protogen:创建cs文件,c#,protocol-buffers,protobuf-net,protogen,C#,Protocol Buffers,Protobuf Net,Protogen,我试图用Protogen来创建C#类这是我的语法 <Exec WorkingDirectory="..\..\ProtoFiles" Command="$(3rdParty)\protobuf\protobuf-net\protogen.exe --proto_path:ClientsList.proto --csharp_out:ClientsList.cs" /> 但没有创建C#类 当我使用同一个原型创建C++类时,所有的工作都是

我试图用Protogen来创建C#类这是我的语法

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

但没有创建C#类

当我使用同一个原型创建C++类时,所有的工作都是完美的(我需要添加语法=“PROT2”;我不知道这是否会影响C部分)

如果我手动运行它:
C:\3rdParty\protobuf\protobuf net>protogen.exe--proto_路径:ClientsList.proto--csharp_out:ClientsList.cs

用法:protogen[选项]PROTO_文件 解析PROTO_文件并根据给定的选项生成输出:

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

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

请注意,当使用单个PROTO时,PROTO_文件可以是.PROTO或**/.PROTO(递归) 导入位置用于处理找到的所有架构文件。在递归模式下,
从当前目录导入的内容也可以仅按名称指定。

csharp\u out参数是一个文件夹,而不是一个文件,这不是使用proto\u path(同样是一个文件夹)的方式;它是
=
,而不是
-在您的情况下,您可能需要:

protogen --csharp_out=. ClientsList.proto
注意,该语法有意地反映了
protoc
命令行语法


然而!还有一个MSBuild软件包,它可以使您更容易地使用它,而不是您自己的自定义任务。我正在使用一个“生成器”实现—这意味着零安装:只需添加.proto并运行。

手动运行该命令时,该命令是否有效?不,甚至我没有编辑消息来添加该手册,没有错误信息。请提供有关发电机的更多信息?感谢you@melom“生成器”是编译器中的一个全新功能—现在只提供几个星期;我将在protobuf-net.BuildTools下使用它(仅在昨天发布——它提供了“分析器”,可以在IDE或命令行中键入代码时发现使用中的问题)。但是,“生成器”部分尚未完成。@melom这里有一个正在运行的示例:-您正在查找
UsageDemo/generators/ShowUsage.cs
UsageDemo/generators/model.proto