PacketId가 담긴 Enum을 포함하여 FileFormat을 새로 추가해주고, byte와 이중list 상황에서 테스트 해보며 대응코드를 작성해주며 자동화를 더 개선하였다.
지난 시간 PDL 생성하여 복사한 뒤에 Debug 폴더에 넣어주는 방식으로 파일의 경로를 찾았었는데 이제는 직접 파일 경로를 지정하여 원본을 참조하는 방식으로 변경할 것이다.
방법은 간단한데, 저장 경로를 pdlPath
에 담아 준다.
../
현 폴더에서 한 단계 위에 상위 폴더로 가는 경로이다.
ex) PacketGenerator/bin/Debug -> 현재 Debug에 있기에 PacketGenerator에있는 Pdl 파일을 참조하기 위해 두 번 상위 폴더로 진입하였다.
그 뒤에 Creat할 때의 값을 pdlPath 변수로 넣어어 생성해준다.
args[0]을 넣는 이유
아래에서 PacketGenerator.exe를 시작할 때 Main 함수가 동작하며, 그에 딸린 인자 값으로 pdl을 넣어줄 것인데 그 때 작업이 필요하여 미리 코드를 추가해놓는다.
PlayerInforReq class(=GenPackets)에서 내용이 변동 될 때마다 Server, Client에 복사해주는 과정이 굉장히 불편한데
이를 배치 파일로 실행시켜 한 번에 복사하도록 할 것이다.
Packets
라는 폴더를 생성하고 그 안에 GenPackets
라는 새로운 Class를 생성한다. 이제 그동안 작성했던 Dummy, Server에서의 작업을 다 GenPackets로 옮겨준다.
최상위 폴더인 Server 내에 Common폴더, 그 안에 Packet 폴더를 만들고, 텍스트 파일 생성 후 GenPackets.bat
으로 이름을 변경한다.
Visual Studio로 실행하고자 하는 내용을 적어준다.
이 배치파일로 하고자하는 목적은.
이 두가지의 작업을 진행할 것이다.
파일을 시키는 명령어는 아주 간단하다. START 명령어를 사용하면 간단히 실행 시킬 수 있다.
추가로 여기에 웹주소를 쓰면 이렇게 네이버를 실행시켜주기도한다.
우리는 파일을 실행시킬 것이기에 START 파일 경로를 입력해주면 된다. 이때 파일이 시작되는 경로가 해당 bat파일의 위치이기에 잘 설정해주면 된다.
START ../../PacketGenerator/bin/Debug/PacketGenerator.exe ../../PacketGenerator/PDL.xml
인자 넣기
위에서 설명한대로 인자로 PDL을 넣는다 했던 부분이 여기인데, PacketGenerator.exe를 실행할 때 한 칸 뛰고 경로/파일명을 입력해주면 해당 파일이 인자로 들어가게 된다.
여기까지 설정하고 bat 파일을 실행시키면 GenPackets 파일이 생성된 걸 볼 수 있다.
여기서 두 번째 미션인 복사하여 해당 폴더에 넣는 명령어는 XCOPY이다 우선 /Y
명령어를 사용해서 중복이라면 덮어쓰도록 설정한다.
XCOPY + 중복검사 + 복사할 파일 + 복사할 경로
XCOPY /Y GenPackets.cs "../../DummyClient/Packet"
XCOPY /Y GenPackets.cs "../../Server/Packet"
그 뒤에 복사하고자하는 파일명(GenPackets.cs
)을 입력하고, 원하는 위치로 경로를 입력해주면 된다.
이렇게 입력 해준 뒤에 파일을 실행 시키면 GenPackets의 내용이 각각 업데이트 되며 최신 파일로 변경해준다. 이제 파일 수정 후 여기저기 복붙할 필요 없이 이 bat 파일을 한 번 실행시켜주면 끝이다.
하지만 나는 이렇게 아름답게 실행되지 않고 오류가 발생하여 bat 파일을 실행시켜도 제대로 된 경로에 있는 파일을 찾지 못하는 경우가 생겼다.
+07.05 알고보니 경로에 s가 하나 빠져있어 동작하지 않았다... ㅠㅠㅠ 다시 수정하니 이제 잘된다.