繁体   English   中英

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

[英]compile protocol buffers 3 timestamp type in c# visual studio?

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

MessageType 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右击原型文件并选择“运行自定义工具”失败,错误“自定义工具'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”中。 它必须手动包含在项目中,才能自动编译。 这就是我今天的表现。 我希望这可以帮助别人。

导入时间戳并使用完整命名空间:

syntax = "proto3";
import "google/protobuf/timestamp.proto";

message Quake {
  google.protobuf.Timestamp _timestamp = 1;
  double magnitude = 2;
}

要生成C#代码,请参阅其手册: https//developers.google.com/protocol-buffers/docs/csharptutorial#compiling-your-protocol-buffers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM