카테고리 없음

c# 에서 .proto 파일 사용하기

김모작자 2020. 10. 27. 23:26

nuget 에서 protobuf 와 관련된

- google.protobuf
- google.protobuf.tools

두개의 패키지를 설치는 했는데.. .proto 파일을 어떻게 변환하는지 모르겠더라..
구글링..
역시 stackoverflow 에는 답이 있다!

visual studio 에는 pre-build event 라는걸 설정해둘 수 있는데,
아래와 같이 -I 에는 가져다 쓸 .proto 파일이 있는 경로, -csharp_out 에는 c# class 파일이 생성되는 위치, 마지막엔 컴파일 하려는 .proto 파일 경로를 지정하여 빌드 직전에 .cs 파일을 생성해 낸다.

아래는 프로젝트의 protos 폴더에 있는 모든 .proto 파일을 가지고 packet 폴더에 .cs 파일을 생성한다. 
(미리 폴더를 생성해야 에러가 안생긴다!)

$(NugetPackageRoot)google.protobuf.tools\3.13.0\tools\windows_x64\protoc.exe 
  -I=$(ProjectDir)protos 
  --csharp_out=$(ProjectDir)packet 
  $(ProjectDir)protos\*.proto

stackoverflow.com/questions/58385978/invoking-tool-in-a-nuget-package-with-generator-getting-unexpected-was-not-f