2017-03-11 36 views
1

这看起来确实很基本,但我对C#真的很陌生,所以google参考文档对我来说并不那么清楚。从原始文件构建一个cs文件?

他们指示:

protoc --proto_path=bar --csharp_out=src --csharp_opt=base_namespace=Example player.proto 

他们的榜样是

protoc --proto_path=src --csharp_out=build/gen --csharp_opt=file_extension=.g.cs,base_namespace=Example src/foo.proto 

所以我的基本问题清单:

  • 对于proto_path,是从顶层此开始的程序文件夹

  • 什么是'bar'选项,它总是'src'?

  • 什么是'src'选项,它总是'build/gen'?

  • 这是可复制的吗? '--csharp_opt = FILE_EXTENSION = .g.cs,base_namespace = MyProgram的src/MyProtoFile.proto'

回答

0

对于proto_path,从程序文件夹中的顶层该起始

--proto_path 是您想要转换为cs文件的原始文件的存在位置。这与protoc可执行文件有关,但也可以设置为特定的位置,例如, --proto_path = “C:/ myprotofiles /”

什么是 '酒吧' 选项,是它总是 'SRC'?

“酒吧”不是一个选项。 “富”与“酒吧”给通用指令(https://en.wikipedia.org/wiki/Foobar

什么是“SRC”选项,就是它总是“构建/根”时通常用作占位符?

src不是一个选项。 src是目录的占位符。您将用包含您的proto文件的目录替换“src”。

--csharp_out是您希望输出C#文件去的地方。这也与protoc可执行文件有关,但也可以设置为特定位置,例如, --csharp_out = “C:/ mycsfiles /”

这是可复制的? '--csharp_opt = FILE_EXTENSION = .g.cs,base_namespace = MyProgram的src/MyProtoFile.proto'

我不太清楚在这里你的问题。这是两部分。

--csharp_opt设置选项。这个例子是将file_extension设置为.g.cs(因此输出文件将是somecsfile.g.cs)并且还将base_namespace设置为“MyProgram”,以便生成的所有类将位于名为MyProgram的名称空间中。

在Google的例子中,“src/MyProtoFile.proto”或“src/foo.proto”是/ src目录中的proto文件。在我们的例子中,我们将与替换此“C:/myprotofiles/myprotofile.proto”

所以,我们必须:

protoc --proto_path="C:/myprotofiles/" --csharp_out="C:/mycsfiles/" --csharp_opt=file_extension=.g.cs,base_namespace=MyProtoFileNamespace "c:/myprotofiles/myprotofile.proto" 

设置明确的路径是没有必要的,但希望澄清的东西(至少对于Windows用户!)

相关问题