Я получаю сообщение об ошибке «Файл не найден» при использовании импорта в файле .proto. Я использую Rider, но у меня такая же проблема при использовании Visual Studio.
Первый протофайл:
syntax = "proto3";
import "/fileToImport.proto";
service GreeterAPI {
rpc SayHello (SayHelloRequest) returns (SayHelloResponse);
}
message SayHelloRequest {
string name = 1;
}
message SayHelloResponse {
string answer = 1;
}
Второй протофайл, который я хочу импортировать:
syntax = "proto3";
message Foo {
string bar = 1;
}
Оба файла расположены рядом друг с другом в каталоге проекта.
Файл .csprjo:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Google.Protobuf" Version="3.10.1" />
<PackageReference Include="Grpc.Core" Version="2.25.0" />
<PackageReference Include="Grpc.Tools" Version="2.25.0" />
<Protobuf Include="**/*.proto" />
</ItemGroup>
</Project>
Если я создам проект без строки импорта, все в порядке. Но со строкой импорта я получаю «Файл не найден»
Я знаю, что могу использовать --proto_path
, чтобы сообщить протоколу все файлы. Но я не хочу создавать дополнительный сценарий предварительной сборки или что-то в этом роде. Я хочу использовать сборку в поддержку IDE.