在c# Visual Studio中编译协议缓冲区3时间戳类型?

2024-04-23

Visual Studio 2015 
C#
NuGet Packages : 
Google.Protobuf v3.0.0 
Google.Protobuf.Tools v3.0.0

消息类型Quake

syntax = "proto3";
import "google/protobuf/timestamp.proto";
message Quake {
  google.protobuf.Timestamp _timestamp = 1;
  double magnitude = 2;
}

timestamp.proto包含在同一文件夹中

protoc 3.0.2命令行编译成功

但是 VS 右键单击​​ proto 文件并选择“运行自定义工具”失败,并显示错误“自定义工具‘ProtoBufTool’失败。”

从 Visual Studio 中生成 C# 类?


当 Protobuf 文档解释如何执行 protoc.exe 时,它​​似乎很短(薄弱)。以下是我在正在编写的一个小型测试项目中的做法。我为我的 Protobuf 项目安装了两个 NuGet 包:

Google.Protobuf (C# runtime library for Protocol Buffers)
Google.Protobuf.Tools (protoc.exe)

在 Visual Studio 中,我定义了一个预构建事件命令行。这是在项目的属性菜单中定义的:

..\..\..\packages\Google.Protobuf.Tools.3.6.0\tools\windows_x64\protoc -I="$(ProjectDir)."
    --csharp_out=$(ProjectDir)Model $(ProjectDir)MyOwn.proto

生成的 MyOwn.cs 文件位于子目录“Model”中。它必须手动包含在项目中,才能自动编译。我今天就是这样做的。我希望这可以帮助别人。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在c# Visual Studio中编译协议缓冲区3时间戳类型? 的相关文章

随机推荐