私たちのプロジェクトでは、C++用のGoogleProtobufを正常に使用しています。ここで、C#コードで使用するために同じ* .protoファイルをコンパイルする必要があります。最近ダウンロードしました Protobufバージョン3.0.0-alpha- 。それは私にとって十分であるC#のためのproto2フォーマットのサポートを提供します。 * .protoファイルを正常にビルドし、*。csファイルを取得できます。ただし、結果の* .csファイルをC#プロジェクトに追加してビルドしようとすると、次のようなコンパイラエラーが発生します。"The type or namespace name 'Google' could not be found in the global namespace (are you missing an Assembly reference?)"
これは、エラーが発生する場所です。
// 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;
プロジェクトページで利用可能なリリースZipにDLLなどが見つかりません。C#プロジェクトで参照として含めることができます。protoc.exeと一部の* .protoファイルのみが含まれています。私の簡単な質問は次のとおりです:これらのアセンブリはどこで入手できますか?
(備考:READMEファイルの指示に従ってソースからプロジェクトをビルドしようとしましたが、ビルドに失敗しました protobuf-csharp-3.0.0-alpha- Visual Studio 2013 Update 4を使用すると、「すぐに使用できます」。コンパイラエラーが多数発生します。)
this および this のドキュメントページを読んだ後、パッケージマネージャーコンソールで次のコマンドを実行することにより、プロジェクトのProtocol BuffersNuGetパッケージをインストールできる可能性があることを発見しました。
Install-Package Google.ProtocolBuffers
コンソールには、Visual Studio2013で[ツール]-> [NuGetパッケージマネージャー]-> [パッケージマネージャーコンソール]からアクセスできます。マネージャーがパッケージをダウンロードし、プロジェクトで「Google.ProtocolBuffers」と「Google.ProtocolBuffers.Serialization」という2つの参照を取得して、コンパイラーを満足させました。今では完璧に動作します!