W naszym projekcie z powodzeniem używamy Google Protobuf dla C++. Teraz istnieje potrzeba skompilowania tego samego pliku * .proto, aby użyć go w kodzie C#. Pobrałem najnowszą wersję Protobuf version 3.0.0-alpha-3. Zapewnia obsługę formatu proto2 dla języka C#, co jest dla mnie wystarczające. Mogę pomyślnie skompilować plik * .proto i uzyskać plik * .cs. Jednak, kiedy dodać wynikowy plik * .cs do mojego projektu C# i starają się budować, otrzymuję błędy kompilatora, takie jak: "The type or namespace name 'Google' could not be found in the global namespace (are you missing an assembly reference?)"
Jest to miejsce, w którym błąd się dzieje:Zespoły Google Protobuf 3.0.0 dla C#
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: DiagramExport.proto
#pragma warning disable 1591, 0612, 3021
#region Designer generated code
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
using pbd = global::Google.ProtocolBuffers.Descriptors;
Teraz nie znajdę dowolną bibliotekę DLL itp. w wersji ZIP dostępnej na stronie projektu, którą mógłbym zamieścić jako referencję w moim projekcie C#. Tylko protoc.exe i jakiś plik * .proto są tam. Moje proste pytanie brzmi: Skąd wziąć te zespoły?
(Uwaga: próbowałem zbudować projekt protobuf-csharp-3.0.0-alpha-3 ze źródeł, postępując zgodnie z instrukcjami w pliku README, ale nie udało się go skompilować z aktualizacją programu Visual Studio 2013 4 "po wyjęciu z pudełka"; otrzymano wiele błędów kompilatora .)
Nie wiem, co to jest biblioteka, której próbujesz użyć, ale zacznę od [protobuf.net] (https://code.google.com/p/protobuf-net/). – Sinatr
@Sinatr Jak rozumiem, staram się używać "oficjalnej" dystrybucji przez Google. Przynajmniej dokumentacja na stronie Google wskazuje na ten projekt (zobacz https://developers.google.com/protocol-buffers/) Nie chcę używać protobuf.net, ponieważ już używamy pliku protoc.exe do kompilacji naszego * .proto dla C++ i Java. – Vivit
Google nie ma nic wspólnego z .Net. Więc ktoś musi wykonać * brudną robotę * przenoszenia do biblioteki C++ albo kodu źródłowego do C#. Nie widzę "C#" na połączonej stronie. Po prostu użyj protobuf.net z twojego kodu C#. – Sinatr