Невозможно скомпилировать сообщения Google Protobuf 2 с использованием C # с Mono

я использую protobuf и c#, и порт c# кажется ответом для создания классы С#, использующие proto2. я смог выяснить, что порт С# был создан с помощью dotnet 2.0 из этого поста SO, и я использую последнюю версию моно , которая на момент написания была 4.4.x. моя команда:

mono ./ProtoGen.exe --proto_path=../idl -output_directory=../out ../my.proto

это дает

WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v4.0.30319

никакие файлы не выводятся, и echo $? говорит мне, что он вышел с 255.

какие-нибудь советы? Спасибо!


person cdaringe    schedule 18.08.2016    source источник
comment
Не могу ничего сказать об этой устаревшей версии, но я использую новейший protobuf с выводом C#: github.com/google /protobuf/releases (см. раздел C#)   -  person SushiHangover    schedule 19.08.2016
comment
Да, v3 явно не совместим с v2   -  person cdaringe    schedule 19.08.2016


Ответы (1)


Он немного скрыт в текущей документации по protobuf v3.0. , однако он находится в разделе Вызов компилятора.

Генератор кода C# поддерживает только сообщения proto3. Убедитесь, что каждый файл .proto начинается с объявления:

syntax = "proto3";
person Jake1164    schedule 22.08.2016
comment
спасибо, Джейк, однако, судя по названию проблемы и описанию, я явно нацелен на protobuf 2. - person cdaringe; 22.08.2016