2017-03-11 4 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 SRC = MyProgram/MyProtoFile.proto'proto_path 들어

답변

0

이 프로그램 폴더의 최상위로부터 시작

--proto_path 은 cs 파일로 변환하려는 proto 파일이있는 곳입니다. 이것은 protoc 실행 파일과 관련이 있지만 특정 위치 (예 : 특정 위치)로 설정할 수도 있습니다. --proto_path = "C :/myprotofiles /"

무엇 '바'옵션이있다가 'SRC는'항상

?

"bar"는 옵션이 아닙니다. 일반적인 지침

'SRC'옵션은 무엇인가 항상 '빌드/세대'이다 (https://en.wikipedia.org/wiki/Foobar)

를 제공 할 때 "foo는"과 "바"일반적으로 자리 표시 자로 사용됩니까?

src는 옵션이 아닙니다. src는 디렉토리의 자리 표시 자입니다. "src"를 proto 파일이 들어있는 디렉토리로 바꿉니다.

--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 사용자의 경우)