2017-03-11 6 views
1

これは本当に基本的なように思えるかもしれませんが、私はC#には本当に新しいので、Googleのリファレンスドキュメントは私には分かりません。protoファイルから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' proto_pathについて

答えて

0

、このプログラムフォルダの最上位レベルから始めて

--proto_path は、csファイルに変換したいprotoファイルが存在する場所です。これはprotoc実行可能ファイルに関連していますが、特定の場所に設定することもできます。 --proto_path = "C:/ myprotofiles /"

'バー' オプションは何ですか、それはSRC 'は常にありますか?

"bar"はオプションではありません。 「SRC」オプションは何ですか「foo」と「bar」の一般的な指示を与える場合に一般的にプレースホルダとして使用されている(https://en.wikipedia.org/wiki/Foobar

、それは「/ GENを構築」は常にありますか?

srcはオプションではありません。 srcはディレクトリのプレースホルダです。 "src"はprotoファイルが格納されているディレクトリに置き換えられます。

--csharp_outは、出力するC#ファイルを移動する場所です。これはprotoc実行可能ファイルにも関係しますが、特定の場所に設定することもできます。 --csharp_out = "C:/ mycsfiles /"

は、このコピー可能ですか? '--csharp_opt = FILE_EXTENSION = .g.cs、base_namespace = MYPROGRAMのsrc/MyProtoFile.proto'

私はここにあなたの質問のかなりよく分かりません。これは2つの部分です。

--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ユーザーの場合)

関連する問題