从不同的项目.Net访问protobuf

Posted

技术标签:

【中文标题】从不同的项目.Net访问protobuf【英文标题】:Accessing protobuf from different project .Net 【发布时间】:2019-05-30 18:59:23 【问题描述】:

我正在尝试使用 gRPC 构建一个大型系统。我有一个项目,我在其中定义了一个 .proto 文件。我创建了第二个项目,它引用了第一个项目。我希望能够在第二个项目的 proto 文件中定义的消息中使用第一个项目的 proto 文件中定义的消息。这可能吗?

【问题讨论】:

【参考方案1】:

在这些情况下,我总是将 proto 文件放在他们自己的存储库中。例如,如果您使用的是 git,那么您将在两个项目中使用带有定义文件的存储库作为 子模块

最终您将拥有三个存储库:

    消息定义 项目A 项目 B

项目 A 和 B 将引用消息定义存储库。

【讨论】:

感谢您的回答。这是/是我的计划 B。我希望有一种方法可以将项目特定的 proto 文件封装在该特定项目中。并从其他项目访问它们。我最终可能会做这样的事情。【参考方案2】:

我在这里回答了一个类似的问题: https://***.com/a/59821705/9742876

简而言之,如果您将ProtoRoot 属性添加到.csproj 文件中的<Protobuf /> 部分,则可以执行此操作。 ProtoRoot 更改了 import 语句开始搜索 .proto 文件的根文件夹,但请查看上面的链接了解更多信息。

【讨论】:

以上是关于从不同的项目.Net访问protobuf的主要内容,如果未能解决你的问题,请参考以下文章

从不同的域访问 Asp.net Mvc 区域

从不同项目访问 appsettings.json

从 VB.NET 项目访问 DB2 数据库的奇怪行为

当作为 COM 对象访问时,SslStream 的响应不同

无法从 ASP.Net 网站项目中的代码访问 App_Code 中的类

Azure DevOps 项目管道无法从不同项目中的工件源访问 NuGet 包