Я использую пользовательский инструмент ProtoBufTool для protobuf-net для генерации классов C # из файлов .proto. До сих пор я не смог заставить оператор import
в файлах прототипа работать с относительными путями. Вот моя ситуация:
У меня в проекте есть 2 прото-файла, расположенных следующим образом:
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;
}
Файл User.cs генерируется нормально, но в файле UserSearch происходит сбой. Это то, что я вижу в окне списка ошибок.
- Ошибка пользовательского инструмента: ../User.proto: файл не найден.
- Ошибка пользовательского инструмента: UserSearch.proto: импорт "../User.proto" не найден или имел ошибки.
- Ошибка пользовательского инструмента: UserSearch.proto: 22: 18: «Пользователь» не определен.
Для записи я попытался использовать \\
вместо /
и получаю тот же результат. Кроме того, оператор импорта работает нормально, если оба файла прото-файлов находятся в одном каталоге, и я удаляю ../
, но я не хочу, чтобы мои файлы располагались.
Как мне получить относительные пути для работы в операторе импорта?