24.07.22 14:52 작성
·
253
·
수정됨
0
개발환경은 맥북, rider 사용중 입니다.
rider 패키지 구성과 protobuf 구성에서 해결 방법을 찾고 있습니다.
rider 패키지 구성 현황
[구성완료]
Server
GameServer
ServerCore
[미구성]
Tools
PacketGenerator : 솔루션은 만들었으나 bin 폴더 구성 못함
Common
Protocol
해결 방법을 알고계시다면, 레퍼런스 또는 조언 부탁드립니다.
감사합니다.
@추가 내용
protobuf 설치는 homebrew 로 설치하였습니다.
protoc --version : libprotoc 27.1
protobuf 버전 변경 - 3.27.2
답변 2
2
2024. 07. 23. 15:20
맥북/리눅스 사용자용 1차 해결 내용
(필수) protobuf 설치
v3.27.2 버전과 맥북용 v27.2 버전은 동일하므로 사용 가능
디렉토리 위치
Server
GenProto.bat -> GenProto.sh 파일 교체
chmod +x GenProto.sh : sh 권한 부여
sh 스크립트 내용
#!/bin/bash
# 현재 작업 디렉토리 저장
curPath=$(pwd)
projectPath=$1
# 프로젝트 경로로 이동
cd "$projectPath"
cd ..
# 루트 경로 설정
rootPath=$(pwd)
outputPath="$rootPath$2"
# 프로토콜 파일이 있는 디렉토리로 이동
cd Common/Protocol
# protoc 명령어 실행 (brew로 설치된 protoc 사용)
protoc -I=./ --csharp_out="$outputPath" ./Protocol.proto ./Enum.proto ./Struct.proto
# 오류 발생 시 실행 중단
if [ $? -ne 0 ]; then
echo "protoc 명령어 실행 중 오류 발생"
exit 1
fi
# 패킷 생성기 실행 디렉토리로 이동 (예: macOS용 대체 프로그램 사용)
cd "$rootPath/Tools/PacketGenerator/bin"
# macOS용 PacketGenerator 실행 (예: PacketGenerator 대신 다른 프로그램 사용)
./PacketGenerator -o "$2" -t "$3"
# 원래 디렉토리로 돌아가기
cd $curPath
# 스크립트 종료
exit 0
GameServer.csproj PreBuild 내용 변경
<Target Name="PreBuild" BeforeTargets="PreBuild">
<Exec Command="bash $(SolutionDir)GenProto.sh $(SolutionDir) /Server/GameServer/Packet/Generated/ 1" />
</Target>
1
2024. 07. 23. 18:30
Properties $(SolutionDir) 환경변수 Undefined 일 경우 빌드 옵션 확인 필요
GameServer.csproj 파일 또는 GameServer -> Properties -> Build Events 의 Before Build 에서 차이점
PreBuild는 MSBuild 표준 타겟으로 Visual Studio뿐만 아니라 다른 빌드 환경에서도 동작
PreBuildEvent는 Visual Studio에서 주로 사용