В нашем проекте мы успешно используем Google Protobuf для C++. Теперь необходимо скомпилировать тот же * .proto-файл, чтобы использовать его в коде C#. Я загрузил последние Protobuf version 3.0.0-alpha-3. Он обеспечивает поддержку формата proto2 для C#, которого достаточно для меня. Я могу успешно скомпилировать файл * .proto и получить файл * .cs. Тем не менее, когда я добавить получившийся * .cs файл в мой проект C# и попытаться построить, я получаю ошибки компилятора, подобные этим: "The type or namespace name 'Google' could not be found in the global namespace (are you missing an assembly reference?)"
Это место, где происходит ошибка:Сборки Google Protobuf 3.0.0 для 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;
Теперь я не нахожу любой DLL и т. д. в ZIP-архиве, доступном на странице проекта, который я мог бы включить в качестве ссылки в свой проект C#. Только protoc.exe и некоторые файлы * .proto. Мой простой вопрос: Где я могу получить эти сборки?
(Примечание: Я пытался построить проект protobuf-csharp-3.0.0-alpha-3 из источников, следуя инструкции в файле README, но не смог построить его с Visual Studio 2013 Update 4 «из коробки», я получаю много ошибок компилятора .)
Я не знаю, что это за библиотека, которую вы пытаетесь использовать, но я бы начал с [protobuf.net] (https://code.google.com/p/protobuf-net/). – Sinatr
@Sinatr Как я понимаю, я пытаюсь использовать «официальное» распространение Google. По крайней мере, документация на сайте Google указывает на этот проект (см. Https://developers.google.com/protocol-buffers/). Я не хочу использовать protobuf.net, потому что мы уже использовали protoc.exe для компиляции нашего * .proto для C++ и Java. – Vivit
Google не имеет ничего общего с .Net. Поэтому кто-то должен выполнить * грязную работу * портирования либо оболочки в библиотеку C++, либо исходного кода на C#. Я не вижу 'C#' на связанной странице. Просто используйте protobuf.net из своего кода на C#. – Sinatr