2

これは非常に基本的なことのように思えるかもしれませんが、私は C# を初めて使用するので、Google のリファレンス ドキュメントはそれほど明確ではありません。

彼らは次のように指示します:

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はプログラムフォルダの最上位からですか

  • 「バー」オプションとは何ですか?それは常に「src」ですか?

  • 「src」オプションとは何ですか? それは常に「build/gen」ですか?

  • これはコピー可能ですか?'--csharp_opt=file_extension=.g.cs,base_namespace=MyProgram src/MyProtoFile.proto'

4

1 に答える 1

0

proto_pathはプログラムフォルダの最上位からですか

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

「バー」オプションとは何ですか?それは常に「src」ですか?

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

「src」オプションとは何ですか? それは常に「build/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 という名前空間にあるようにします。

「src/MyProtoFile.proto」または Google の例の「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 ユーザーにとっては!)

于 2017-03-12T00:42:07.507 に答える