Получение ProtoGen с помощью protobuf-net

Я пытаюсь сериализовать некоторые классы с помощью protobufs. Я установил protobuf-net с помощью NuGet, правильно украсил свой код атрибутами, и все работает отлично.

Однако в конечном итоге сообщения будут создаваться на C#, но потребляться в других средах, поэтому мне нужно либо создавать файлы .proto из C#, либо — что мне кажется более разумным — создавать код C# из файлов .proto.

Что бы я ни делал, я не могу найти ProtoGen.exe, установленный где-либо на моем компьютере. Я также нашел этот старый пост, но ничего подобного не происходит, когда я создаю текстовый файл .proto. Добавление ProtoBufTool вручную также не сработало.

Что мне не хватает?


person zmbq    schedule 31.01.2012    source источник


Ответы (1)


Protogen включен в сборку v1/280, или есть отдельный инструмент VS, доступный на сайте проекта. Нет удобного способа включить его в nuget каким-либо разумным способом (я проверил с людьми из MS; дважды).

Как для протогена, так и для надстройки VS функциональность не изменилась для версии 2, поэтому существующие двоичные файлы версии 1 по-прежнему подходят для использования с версией 2.

Если ProtoBufTool не сработал тогда... Я не знаю, что с этим делать; было ли какое-либо сообщение об ошибке/предупреждение? Классическое предупреждение касается кодировки входного файла ("protoc", инструмент Google, очень суетлив в отношении кодировки).

person Marc Gravell    schedule 31.01.2012
comment
Я пробовал v2, что объясняет, почему ничего не происходит (инструмент даже не запустился, ошибки вообще не было). Попробую получить от v1. Спасибо. - person zmbq; 31.01.2012
comment
Привет, только быстрый вопрос: актуальна ли эта информация? т.е. теперь этот инструмент включен в nuget и правильно устанавливается? Я не уверен в правильном способе получения протогена по состоянию на 2017 год, поскольку страница GitHub перенаправляет только на довольно старую запись в блоге, которая не содержит никаких дополнительных ссылок. - person Groo; 24.07.2017
comment
@Groo Самый простой способ получить это сегодня — protogen.marcgravell.com — он доступен как источник, но я нужно поработать над упаковкой для nuget - person Marc Gravell; 24.07.2017