簡體   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