[英]Getting Expected top-level statement (e.g. “message”).while converting proto to C#
我有一个名为Person.proto的简单原型文件,其中包含以下内容。 我不明白我在想什么。
syntax = "proto2";
message Person{
optional string name = 1;
}
我正在使用的命令是
Protoc Person.proto --csharp_out=C:\Users\Owner\.nuget\packages\google.protocolbuffers\2.4.1.555\tools Person.cs
人.cs
public class Person
{
}
您在那里使用的是哪个工具版本? 如果不希望使用“ syntax”关键字,则表明工具版本非常旧。 也许尝试更新? 但是,当前的Google工具仅支持“ proto3”语法。 在您的情况下,这仅意味着将“ proto2”更改为“ proto3”并删除“可选”。 您也可以尝试使用我的在线工具,该工具同时支持Google工具(protoc)和protobuf-net工具(protogen)-请参见https://protogen.marcgravell.com上的下拉列表。
与protoc不同,protogen支持“ proto2”和“ proto3”语法。 页面上有有关如何在本地访问工具的链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.