VS2008 と統合された最新バージョンの protobuf-net を使用しています。2 つのメッセージ (Message1 と Message2) を作成しました。1 つのメッセージは 1 つの proto ファイルに含まれています。Message1 で Message2 を参照しようとすると、コード ジェネレーター ツールで "Message2" is not defined というエラーが表示され、コード ファイルが生成されません。両方のメッセージのパッケージは同じです。
ツールが VS2008 と統合されているため、同じ .proto ファイル内のすべてのメッセージがコンパイルされることを期待しているようです。現在、次のように、Message1.proto ファイルに同じ名前の空のメッセージを貼り付ける必要があります。
message Message1 {
optional Message2 message2 = 1;
}
message Message2 {
}
そして後でclass Message2
fromの宣言を削除しMessage1.cs
ます。このエラーを回避するために必要な設定はありますか、それとも空の宣言を提供する唯一の方法ですか? または、そうでない場合は、「extern」などのキーワードを含めて、この型の定義が別のクラスで利用可能であることをコンパイラに伝えることをお勧めします (Marc Gravell)。