2012-01-31 2 views
2

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

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

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

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

ответ

4

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

Для протонов и VS addin функциональность не изменилась для v2, поэтому существующие v1-файлы остаются прекрасными для использования с v2.

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

+0

Я пробовал v2, что объясняет, почему ничего не происходит (инструмент даже не запускался, не было никакой ошибки вообще). Я попробую получить его из v1. Благодарю. – zmbq

+0

Привет, просто быстрый: эта информация актуальна? То есть теперь инструмент включен в nuget и устанавливается правильно? Я не уверен насчет «правильного» способа получения протогена с 2017 года, поскольку страница [GitHub] (https://github.com/mgravell/protobuf-net#proto-file) только перенаправляется на довольно старый пост в блоге , который не предоставляет никаких дополнительных ссылок. – Groo

+0

@Groo самый простой способ получить это сегодня http://protogen.marcgravell.com - он доступен в качестве источника, но у меня есть работа по его упаковке для nuget –