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文件位于子目录“模型”中。它必须手动包含在项目中,然后才能自动编译。我今天就是这样做的。我希望这可以帮助别人。

关于c# - 在C#Visual Studio中编译 Protocol Buffer 3时间戳类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39604227/

10-08 21:31