protobuf-net用のProtoBufToolカスタムツールを使用して、.protoファイルからC#クラスを生成しています。私はこれまで相対パスで動作するためにprotoファイルのimport
ステートメントを取得できませんでした。され、次の私の状況:protoファイルのインポート文でどのように相対パスを使用できますか?
User.proto:
package Models;
message User {
required int32 ID = 1;
required string Username = 2;
// etc...
}
UserSearch.proto:
package Models.Messages;
import "../User.proto";
message UserSearchRequest {
optional string Query = 1;
optional int32 Limit = 2;
optional int32 Offset = 3;
}
message UserSearchResult {
required int32 NumResults = 1;
required int32 NumReturned = 2;
repeated User Users = 3;
}
私は私のプロジェクトで2つのプロトファイルを持っているが、このように配置されました
User.csファイルは正常に生成されますが、失敗します。 UserSearchファイルこれがエラーリストウィンドウに表示されます。
/
の代わりに\\
を試してみましたが、同じ結果が得られました。また、両方のprotoファイルが同じディレクトリにあり、私が../
を削除した場合、インポートステートメントはうまく動作しますが、これは自分のファイルを整理する方法ではありません。
インポートステートメントで相対パスを使用するにはどうすればよいですか?
あなたがバグを修正できるなら、私は確かにそれを感謝します!知っておいてよかったです(いずれの形式も受け入れている原型に関する)。たぶん私はそれを利用することができます。しかし、VSツールを使用すると開発者のワークフローがはるかに改善されます。 –
私はChrisと同じ問題を抱えていましたが、 'protogen.exe'コマンドラインツールを使用していました。私は "Some.proto:File not found"を受け取りました。エラー。 'protoc'を使って中間のバイナリファイルにコンパイルし、そのファイルを' protogen.exe'に渡すことはやりました。 –
@Marc Gravell、これはこれまでに修正されていますか? –