max*_*pan 5 c# protocol-buffers protobuf-net
我有一个名为 Person.proto 的简单原型文件,其中包含以下内容。我不明白我错过了什么。
syntax = "proto2";
message Person{
optional string name = 1;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用的命令是
Protoc Person.proto --csharp_out=C:\Users\Owner\.nuget\packages\google.protocolbuffers\2.4.1.555\tools Person.cs
Run Code Online (Sandbox Code Playgroud)
人物.cs
public class Person
{
}
Run Code Online (Sandbox Code Playgroud)
您到底使用什么工具版本?如果不需要“syntax”关键字,则表明工具版本非常旧。也许尝试更新?然而,目前的Google工具仅支持“proto3”语法。就您而言,这仅意味着将“proto2”更改为“proto3”并删除“可选”。您还可以尝试我的在线工具,它为 Google 工具 (protoc) 和 protobuf-net 工具 (protogen) 提供支持 - 请参阅https://protogen.marcgravell.com的下拉菜单
与 protoc 不同,protogen 支持“proto2”和“proto3”语法。页面上有有关如何在本地访问这些工具的链接。