【发布时间】:2020-03-11 11:46:54
【问题描述】:
在 .proto 文件中使用导入时出现“找不到文件”错误。 我正在使用 Rider,但在使用 Visual Studio 时遇到了同样的问题。
第一个 proto 文件:
syntax = "proto3";
import "/fileToImport.proto";
service GreeterAPI {
rpc SayHello (SayHelloRequest) returns (SayHelloResponse);
}
message SayHelloRequest {
string name = 1;
}
message SayHelloResponse {
string answer = 1;
}
我要导入的第二个 proto 文件:
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 告诉 protoc 所有文件。
但我不想构建额外的预构建脚本或类似的东西。
我想使用构建来支持 IDE。
【问题讨论】:
-
看起来你指定了一个绝对路径,你可以试试相对路径:'import "fileToImport.proto"; '
标签: visual-studio protocol-buffers protobuf-net rider proto